所实现的功能:
这篇文章主要是记录我在非同一局域网下用win10系统的Xshell去连接Linux系统服务器。
环境:一台win10主机,已安装好Xshell7,局域网ip:192.168.0.132
一台Linux主机,将其作为远程服务器使用,局域网ip:192.168.0.119,公网ip:113.54.xxx.xxx
同一局域网下的连接方式可以参考我的另一篇文章:
Xshell连接远程Linux服务器失败Could not connect to ‘192.xxx.xx.xxx‘ (port 22): Connection failed.
地址:https://blog.csdn.net/qq_37975919/article/details/115207220
遇到的问题:
这两台主机从表面上看网关一样,但实际上互相 ping 私有 ip 时 ping 不同,后面确定他们都不在一个局域网,只是网关ip相同而已。能 ping 通是实现远程访问的前提。使用公网 ip 他们能 ping 通,但我使用Xshell访问连接不到Linux服务器。
解决方法:
进入路由器管理页面,设置 Linux 服务器主机的端口映射,将私有 ip 的SSH默认端口(22)映射到公网 ip 的其他端口(任意端口即可)。
具体操作:
1先按我同一局域网下的方式,做好以下准备工作:
1.1、在linux服务器上安装好openssh-server
1.2、打开ssh默认端口22
1.3、还要确认window端也装上了openssh,win10默认已安装,直接把Xshell安装好
查看双方主机的公网ip及私有ip
linux 查看主机的公网ip:两种方法,如下:
- curl ifconfig.me 速度慢,信息不全
- curl cip.cc 速度快
linux查看私有ip及网关掩码之类的:
ifconfig
windows是
ipconfig
2 按照以下步骤配置好端口映射
在Linux服务端所在的局域网进入路由管理页面。
我这里是进入:http://192.168.0.1
输入密码就可以进行配置了
这里是示意图,是Tenda的
它这个好像是全端口映射,一一对应,和TPLINK不一样。
TPLINK是下面这种的。该图是将内部80端口映射到外网8080端口,然后我是将22端口映射到1080端口的。1024以下的端口默认是root用户。根据自己需要设置。
还可以在WAN设置那里看公网ip地址,WAN口是广域网,LAN口是局域网。
参考博文:使用外网ssh远程登录Ubuntu的设置方法
地址:https://www.2cto.com/net/201806/756272.html
windows10内网和外网访问ubuntu服务器
3、设置号好端口映射之后,再在windows端的Xshell进行远程连接。
主机填公网ip,端口填映射到外网的端口,我这里是1080
点击连接,成功之后会出现下图,点击接受并保存就好了。
现在就可以进行操作啦!!!
历时两天,开心到飞起!!!