需求:A机器是内网机器,B机器是公网服务器,想要从公网,访问A机器的端口
方式:端口映射,内网穿透,利用ssh打洞端口:
- 1:配置config
vim ~/.ssh/config
输入
- Host remote_name_B # 自定义B机器名字
- HostName 10.110.110.1 # B机器ip
- Port 22 # B机器 ssh登录端口
- User root # A登录B机器的用户
- IdentityFile ~/.ssh/id_rsa # A登录B机器的秘钥,要在B机器上提前配置好
- ServerAliveInterval 10
- ServerAliveCountMax 3
复制代码 尝试登录:
- ssh remote_name_B # 首次登录,会提示输入 yes
复制代码 必须登录乐成!
- ssh -f -N -g -R B机器映射端口:本机ip或者127.0.0.1:本机要映射出去的端口 remote_name_B
- 例如:将A机器的22端口,映射到B机器的1822端口上
- ssh -f -N -g -R 1822:127.0.0.1:22 remote_name_B
复制代码
- ssh -p 1822 root@B_ip 即可
- # 登录服务器端口,记得把本机的公钥放到A机器上
- # 其他业务服务端口,浏览器直接访问即可
复制代码 遇到标题:命令实行乐成,但是端口转发失败
- # 终端输出:
- Authorized users only all activities may be monitored and reported
- warning: remote port forwarding failed for listen port 1822
复制代码 分析:目标服务器ssh配置标题
- Authorized users only all activities may be monitored and reported
复制代码 这个是乐成的,如果SSH隧道创建失败,会提示“Permission denied”、“Connection closed”等报错信息。
- warning: remote port forwarding failed for listen port 1822
复制代码 标题出在这里~~
解决:修改ssh配置
vim /etc/ssh/ssh_config
- # 修改这两个key的值
- AllowTcpForwarding yes # 允许远程端口转发
- GatewayPorts yes # 如果 GatewayPorts 设置为 no,B 机器只会绑定到 127.0.0.1,导致外部无法访问。
- # 重启ssh
- systemctl restart sshd
复制代码 即可
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |