外网PC(win7系统)通过SSH连接其它局域网PC(Linux系统)的方法探索
为方便叙述,将外网PC(win7系统)简称为主机W,将PC(Linux系统)简称为主机L。
两个主机的基本网络环境描述如下。
a. 主机L是家庭PC,通过路由器接入到网络运营商的网关,进而连接互联网。路由器无固定外网IP,路由器外网IP变化时,需在主机W处更改远程连接目标的IP地址。
b. 主机W连接在公司局域网,可通过公司网关连接到互联网。
以下为实现过程的描述。
1. 配置主机L
(1)通过浏览器访问路由器网络设置管理页面。笔者使用的路由器型号为iPtime N604A,在浏览器地址栏输入192.168.1.1并进入后,点击页面上的“管理工具”进入网络管理页面。在内网网络信息中找到内网可使用IP的范围。
(2)固定主机L的内网地址。在shell终端输入
vi /etc/sysconfig/network-scripts/ifcfg-eth0
命令(注1:需要root权限;注2:如果使用eth1或其它通道上网,应将ifcfg-eth0替换为ifcfg-eth1或其它相应文件),打开文件后,添加一行
IPADDR=192.168.1.X
并保存(注3:X需包含在步骤(1)所查看道的IP范围中)。
(3)确认主机L已安装并运行SSH服务。本步骤比较简单,可参考网络。
(4)出于安全原因,将主机L的SSH连接开放到互联网之前,应修改SSH默认连接端口,或限制可访问IP。(本文只讨论前者,更改为端口2028,后者更安全,可参考网络)
(4-1)在shell终端输入
vi /etc/sysconfig/iptables
(需要root权限),打开文件后,为防火墙增加新端口2028,红色字体部分为新增内容。
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2028 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存文件并退出编辑后,重启防火墙,使配置生效,在shell终端依次输入并执行
/etc/init.d/iptables restart
service iptables restart
命令(需要root权限)。
(4-2)更改SSH的连接端口。
更改前最好备份源文件。在shell终端依次输入并执行
cp /etc/ssh/ssh_config /etc/ssh/ssh_configbak
cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak
命令。然后修改ssh端口为2028。在shell终端输入
vi /etc/ssh/sshd_config
打开配置文件,在 #Port 22 这一行下面添加一行 Port 2028 后保存退出。在shell终端输入
vi /etc/ssh/ssh_config
打开配置文件,在 #Port 22 这一行下面添加一行 Port 2028 后保存退出。
重启SSH服务使修改生效,在shell终端依次输入并执行
/etc/init.d/sshd restart
service sshd restart
命令(需要root权限)。
(5)回到步骤(1)所打开的页面,在高级设置里打开NAT管理页面,为主机L添加IP和端口映射规则。
内部IP 设置为步骤(2)中固定的内网IP。
外部Port 设置为 6050-6050 (也可以设置为其它端口号,将来在主机W上通过这个端口号进行远程连接。
内部Port 设置为 2028-2028 (即步骤(4)中设定的端口号)
传输协议 选择为 TCP。
(6)在步骤(1)所打开的页面找到路由器的外部IP地址。
至此主机L端配置完成,但安全性较低,请参考网络上的方法,增加访问安全性。
2. 主机W远程连接
利用提供SSH连接方式的客户端例如xShell和putty建立SSH连接,HOST地址为1-(6)得到的IP地址,端口号为1-(5)设定的外部Port号,然后就可以连接道主机L了。就是这么简单。
转载请注明出处及作者,谢谢。