如果两个内部网之间的linux服务器需要相互登录,或者需要相互访问内部网的某个端口,则可能没有公共IP。 可用的方法是ngrok(https://ngrok.com),但并不方便。 只使用两个sh命令。
SSH内部网端口传输实战SSH内部网端口传输实战
首先举出正文的主角,两个SSH命令:
远程端口转发(从远程服务器的端口转发到本地内部网的服务器端口) ) )。
ssh -CfNg -R (命令行密钥) 2222;远程服务器端口(127.0.0.1:22 )本地端口) 123.45.67.8;远程服务器) )。
本地端口传输(从本地内部网服务器的端口传输到远程服务器端口) ) )。
ssh -CfNg -L (命令行的密钥) 2222 )远程服务器端口) :0.0.0.0:4444 )本地端口) 123.45.67.8 )远程服务器)
命令行选项的说明:
(c )压缩数据传输。
--f :后台认证用户/密码。 与-N连用,不需要登录远程主机。
-N :不执行脚本和命令,通常与-f连用。
- g :使用“- l/- r/- d”参数,可以连接到建立远程主机的目标端口。 如果不指定此参数,则只有本地主机可以建立连接。
--l本地端口:目标IP:目标端口
-T不分配TTY,只作为代理使用
--q静默模式,不输出错误/警告信息
必须允许远程计算机访问的内部计算机的端口号(端口:22 )。
知道以上参数后,使用以下命令创建远程SSH隧道,并在内部网主机上运行
sh-cfng-r 22223360127.0.0.1:22123.45.67.8
当前,在IP为123.45.67.8的计算机上,可以使用以下命令登录intranet为192.168.0.100的计算机:
sh-p 2222本地主机
现在,公共ip的123.45.67.8主机可以在本地访问内部网服务器端,但是内部网客户端怎么登录? 只需将内部网客户端的4444个端口映射到123.45.67.8的2222个端口。
我们现在需要在本地转发。
sh-cfng-l 222233600.0.0.0:444123.45.67.8
运行后,本地内部网客户端4444端口连接到123.45.67.8的2222端口,然后123.45.67.8的2222端口连接到内部网服务器端的22端口,完成映射