赞
踩
背景:公司内网只开发80端口,想连接自己的远程主机。
设备:
A阿里云主机公网IP:106.14.253.11
B家庭局域网主机IP:192.168.0.103
C公司局域网主机IP:192.168.50.100
现在要通过C主机:192.168.50.100 连接到 B家庭局域网主机IP:192.168.0.103的22端口
做实验因为没有在公司所以使用 B家庭局域网主机IP:192.168.0.103 替代 C公司局域网主机IP:192.168.50.100
原理是一样的,要实现的效果是 B家庭局域网主机IP:192.168.0.103 通过连接 A阿里云主机公网IP:106.14.253.11 的80端口连接到 B家庭局域网主机IP:192.168.0.103 而用到用户名密码是 B家庭局域网主机IP:192.168.0.103(C公司局域网主机IP:192.168.50.100 )
前提:
1、C主机:192.168.50.100 可以连接到 A阿里云主机公网IP:106.14.253.11 的80端口 ,其实也就是公司开发80端口就可以。
启动A阿里云主机公网IP:106.14.253.11 的80端口监听 成功!
测试C主机:192.168.50.100 可以连接到 A阿里云主机公网IP:106.14.253.11 的80端口 成功!
2、B家庭局域网主机IP:192.168.0.103 可以登陆到 A阿里云主机公网IP:106.14.253.11,注意是登陆,需要有A阿里云主机公网IP:106.14.253.11 这台主机的账户密码。
实现:
在B家庭局域网主机IP:192.168.0.103 上执行端口转发命令
tedypeng@tedypeng-server:~$ ssh -N -v -R 106.14.253.11:80:192.168.0.103:22 root@106.14.253.11
执行完上面的命令后 A阿里云主机公网IP:106.14.253.11 建立了80端口的监听 ,注意这里端口绑定的ip是127.0.0.1不是指定的106.14.253.11
在A阿里云主机公网IP:106.14.253.11 测试80端口的连通性
测试失败原因分析:因为80端口的监听是绑定在127.0.0.1上了所以使用106.14.253.11会失败。
解决80端口的监听未绑定在106.14.253.11上的过程:
查看ssh -R的用法
以上意思只会绑定到loopback 网卡也就是 127.0.0.1,如果要设定其他的地址需要启用GatewayPorts ,参考 sshd_config。
通过一系列探索终于明白是,在 /etc/ssh/sshd_config 添加配置 GatewayPorts yes
重启在A阿里云主机公网IP:106.14.253.11 上的 sshd服务
root@aliyun-server:/# systemctl restart sshd
重新执行 在B家庭局域网主机IP:192.168.0.103 上执行端口转发命令
tedypeng@tedypeng-server:~$ ssh -N -v -R 106.14.253.11:80:192.168.0.103:22 root@106.14.253.11
查看80端口绑定情况
可以看到A阿里云主机公网IP:106.14.253.11 上绑定的地址是所有ip地址的80端口,问题解决。
重新做联通性测试 成功!
最后验证 成功!
tedypeng@tedypeng-server:~$ ssh tedypeng@106.14.253.11 -p80
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。