SSH远端传入实现内网穿透
作者:互联网
Refer:
场景:
隧道/端口转发
感觉mobaxterm这个功能更好用直观些
xshell
-
在主机B上安装xshell
-
使用xshell连接主机C,新建会话,填写自己的外网主机IP和端口,和用户身份验证,注意重新连接需要填写。
-
打开日志,点击跟踪,勾选协议事件
-
点击隧道,点击添加,按如下图填写转移规则
- 使用主机C访问主机A
经过上面操作,打开新建的会话时会有如下提示
此会话bwg即是主机C,在主机C上
ssh localhost -p 6634
,按照提示输入yes和主机A的密码即可访问主机A
主机D如何直接访问主机A
在主机C上配置sshd配置转发
- 在主机C上编辑sshd配置文件/etc/ssh/sshd_config
GatewayPorts yes
- 然后重启sshd
sudo systemctl restart sshd
- 在其它主机D可以直接 ssh 主机C的IP(95.49.4.*) + 监听的端口(6634) 访问主机A
保持活跃连接
不太管用呢?还需探索,如果有知道的麻烦评论赐教
设置保持活动状态
设置连接-重新连接
反而会导致建立过多连接,出现ssh卡顿或连不上。 (不确定是不是这个原因)
Mobaxterm
-
选择tunnel-remote port forward
-
参照提示填写ip和端口
-
开启密钥连接,自动重连和保持连接
其他方法配置过程(比较繁琐,效果不好)
Refer:Linux下ssh反向隧道进行内网穿透
场景一致,容易断连
ssh反向代理实现内网穿透
公网服务器a,公网ip为IPa
,开放ssh转发的端口Pa
,用户名accountA
内网服务器b,无法访问外网,用户名account
连接内网和外网的工位机c
一、内网服务器配置ssh代理
如果服务器b访问不了公网服务器a的话:
-
需要在工位机c上的v2rayN开启允许局域网的连接,确定代理的socks的端口
Pc
和内网ipIPc
-
服务器b设置代理(可选,如果需要服务器b下载的话)
-
设置服务器b的ssh代理:
mkdir ~/.ssh
cd ~/.ssh
vi config
添加以下内容,替换IPc
,Pc
Host *
ProxyCommand nc -X 5 -x IPc:Pc %h %p
二、设置ssh反向代理
登录服务器b,输入以下指令:(替换Pa
,accountA
,IPa
)
ssh -f -C -N -R Pa:``localhost:22`` -o ServerAliveInterval=60 accountA@IPa
接下来输入密码
若要通过公网服务器a连接的话,在a的shell下:
ssh -p Pa accountB@localhost
三、保持连接
也可以直接安装autossh
-
先设置通过公钥登录
-
新建一个脚本reverse_ssh.sh,注意替换
Pa
和第6行
#!/bin/bash
while true;do
RET=`ps ax | grep "ssh -f -C -N -R Pa:localhost:22" | grep -v "grep"`
if [ "$RET" = "" ]; then
echo "restart ssh server"
ssh -f -C -N -R Pa:localhost:22 -o ServerAliveInterval=60 accountA@IPa
fi
sleep 10
done
- 设置运行权限
chmod +x reverse_ssh.sh
- 保持后台运行即可
一直连接不稳定
可能是工位机的ip不固定,比如经常切换wifi和网线连接
Refer:SSh连接失败,Socket error Event: 32 Error: 10053.
标签:主机,端口,穿透,Pa,SSH,服务器,远端,连接,ssh 来源: https://www.cnblogs.com/xdo0/p/16341667.html