将本地服务共享给服务器

发布时间 2023-12-19 23:25:05作者: jingjingxyk

文档说明:只记录关键地方; 发布时间: 2023-12-20
要求: 通过公网临时访问正在开发的服务
运行环境: linux macos
用途例子:
1、 本地调试微信公众号服务器推送、接受的消息
2、 本地开发的服务,公网临时预览
3、 服务器直接访问本地服务
4、 远程协助等等

说明

将本地服务共享给服务器 其实有很多实现方法,比如:

frp
WireGuard
tailscale
zerotier
todesk
RustDesk
等等工具,以及各种 SDN 解决方案

最后结论: 只要能解决内网 NAT 穿越的工具,都可以实现此功能

不想配置,不想注册帐号,又想快速使用,那么借助SSH反向代理 能快速实现

服务端配置

# 服务SSH配置 允许 反向代理

vi /etc/ssh/sshd_config
# GatewayPorts yes

#配置完毕重启sshd
systemctl restart sshd

你的本地配置

例子说明:

服务器公网地址: 39.104.48.241 , 服务器内网地址: 172.23.149.62

本地服务地址: 127.0.0.1:9501 (你的本地提供的 http 服务)

按需修改你本地服务地址即可




ip='39.104.48.241'
keyfile=/home/jingingxyk/huhehaote-sdn-test.pem

{
  ssh -o StrictHostKeyChecking=no \
    -o ExitOnForwardFailure=yes \
    -o TCPKeepAlive=yes \
    -o ServerAliveInterval=15 \
    -o ServerAliveCountMax=3 \
    -i $keyfile \
    -v -CTgN \
    -R 172.23.149.62:2000:127.0.0.1:9501 \
    root@$ip
} || {
  echo $?

}

     

在服务器验证是否配置成功例子

例子一: 服务器访问本地网页服务


curl -v http://172.23.149.62:2000/index.html 

例子二: 服务器 访问 本地 mysql 服务

本地服务的端口 6379

把上述命令 127.0.0.1:9501 替换为 127.0.0.1:6379



mysql  -p 2000 root@172.23.149.62 

例子三: 将本地代理服务共享给服务器

本地服务的端口 7892

把上述命令 127.0.0.1:9501 替换为 127.0.0.1:7892



curl -v --proxy 'http://172.23.149.62:2000' https://chromium.googlesource.com

curl -v --proxy 'socks5h://172.23.149.62:2000' https://chromium.googlesource.com

参考文档

  1. SSH 连接保持不断线