注autossh穿
autossh -v -M 9002 -NR 7280:10.11.6.13:18877 root@47.101.151.73 -p 22
ssh穿
内网:10.11.x.x
外网:47.101.x.x
内网端口ssh 22 外网7280端口先穿22
ssh -o ServerAliveInterval=60 -f -N -R 7280:10.11.x.x:22 root@47.101.x.x
#让公网机的9090端口能够监听到内网机的22端口,这样我们就能通过访问公网机的9090端口直接登录内网机器。 ServerAliveInterval=60 防止连接不稳定,这里设置每60秒发送一次数据包 这样我们就能连接通过外网机登录内网机器了
公网机上输入 curl http://127.0.0.1:7280
, 看到下面这串回复说明ssh已经通了
SSH-2.0-OpenSSH_7.4
Protocol mismatch.
12
但是这里还有个问题就是ssh只能连接到外网机的本机回路地址127.0.0.1上,我们还无法通过外网ip 47.101.x.x来连接内网机。所以这里还要做如下配置:
外网机输入iptables -t nat -A PREROUTING -p tcp --dport 7280 -j DNAT --to-destination 127.0.0.1:7280
这句代码的意思是访问7280端口的请求都转发到回路地址`127.0.0.1:7280`这个地址上。
1
Linux系统出于安全考虑,是不允许将请求转发至127.0.0.1这个回环地址上的,所以我们还需要修改内核参数。
sysctl -w net.ipv4.conf.eth0.route_localnet=1
1
到此我们所有配置完成
输入: curl http://47.101.x.x:7280
SSH-2.0-OpenSSH_7.4
Protocol mismatch.
12
看到以下回复说明我们外网9090端口和内网22端口已经连通,这里我们在做最终的测试
任意选择一台机器(ssh 正常使用)
命令行输入: ssh root@47.101.x.x -p 7280
通过ssh转到jupyterlab端口
我的jupyterlab端口8889,用mobaxterm的turnel
设置完点击运行,然后本地通过访问127.0.0.1:12345就能访问远程jupyter
jupyeterlab桌面版
新建快捷方式,目标改为
“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --app=http://127.0.0.1:12345
参考
https://blog.csdn.net/qq_42929944/article/details/105251752
https://blog.mobatek.net/post/ssh-tunnels-and-port-forwarding/