市面上 frp 向日葵 等等穿透软件很多这里用ssh自带的反向隧道穿透
原理是利用 ssh -R 的反向端口映射功能将远程地址的3389端口映射出去
环境说明:
A主机:拥有公网IP的服务器,一般是Linux系统作为跳板转发服务器我这里用CentOS7(window请自行安装cygwin)
B主机:可以访问外网windows,但是没有公网IP需要将3389端口穿透映射出去的服务器
注意两台服务器的防火墙一定要允许相关端口!!!
注意两台服务器的防火墙一定要允许相关端口!!
注意两台服务器的防火墙一定要允许相关端口!
A 主机 配置 服务器端sshd只能监听127.0.0.1,需要修改/etc/ssh/sshd_config
AllowTcpForwarding yes 这条一般都是默认yes 确认一下
GatewayPorts yes
修改完成后保存重启sshd服务
systemctl restart sshd
B主机下载安装cygwin(windows 系统里面安装bash 环境)
http://www.cygwin.com/
安装简单下一步下一步就行
但是的时候有时候会出现没有源的情况手动添加源 ,可以换自己合适的源搜索引擎上很多这里用网易163的源。
选择从互联网安装, 在"User URL"处输入以下地址
http://mirrors.163.com/cygwin/
点击"Add"按钮, 然后选中"http://mirrors.163.com", 点击"下一步"进行安装。
安装路径如果不是默认的C盘,请在环境变量中添加相关路径。
我这里以安装在D盘为例
安装好后打开cygwin64,一般桌面有图标,没有的话 cmd 输入cygwin
ssh命令简单说明
-o 是免输入yes
-i 是指定密钥路径
-R 是反向隧道映射
-f 是后台运行
-N 仅转发端口
注意命令比较长空格别漏了(另外点一下还可以设置互信SSH免密码登录)
ssh -o ServerAliveInterval=180 -i /cygdrive/c/id_rsa root@IP -p 22 -R 33389:localhost:3389 -fN
意思是服务保活180秒,将内网B主机 loclhost 3389 反向映射到公网 IP 33389上,之后远程连接即可