端口映射/内网穿透方式及问题解决:warning: remote port forwarding failed for listen port

需求: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

必须登录成功!

  • 2:执行命令
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
  • 3:访问
    访问B的1822端口,就可以了
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

即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值