首页 > 系统 > 其他 >

利用外网主机穿透本地网络防火墙

2015-08-07

这篇文章主要记录了一种穿透本地防火墙的方法,即反向连接。笔者将一边学习实践,一边写下这篇文章,过程可能不是最简洁的,只为自己和后人留下参考而已。 笔者需要达到的目的: 笔者使用的主机A,在局域网A内,

这篇文章主要记录了一种穿透本地防火墙的方法,即反向连接。笔者将一边学习实践,一边写下这篇文章,过程可能不是最简洁的,只为自己和后人留下参考而已。

笔者需要达到的目的:

笔者使用的主机A,在局域网A内,笔者没有局域网A的管理权限,并且局域网A有防火墙,屏蔽了mail.163.com网站;通过笔者自己家中的一台主机(记作主机B),实现主机A穿透局域网A的防火墙通过主机B访问mail.163.com网站。

然而,主机B尚未存在,因此本文将用一定篇幅讲述使用最常见的资源,构建起主机B和整个转发系统的过程。

1. 建立外网主机

环境:北京市ADSL网络,联通光纤接入,一台调制解调器,一端接光纤,另一端接RJ45网线,拨号上网。RJ45网线接入路由器(极路由2代)WAN口,LAN口连了一根网线到一台交换机,交换机网线连接到主机。主机是小型机,很省电,运行Win7系统,平时当做下载机。

因为Linux这方面强大,于是打算装一台Linux服务器,考虑到还得当下载机用,因此不能放弃Win系统,自然想到用虚拟机技术解决。

虚拟机是VirtualBox,Linux是CentOS,全都是开源软件。装好虚拟机需要用yum安装ssh,装全openssh相关的组件

启动sshd服务,停止iptables服务或者允许远程主机连接22端口。

2. 设置主机网络

将VirtualBox虚拟机网卡设置为“网桥”,这样可以通过路由器“DHCP”到固定的局域网IP,方便将来做端口转发。

进入路由器管理界面,来到配置DHCP服务的地方,将虚拟机网卡MAC地址与需要分配给其的IP地址绑定。

来到虚拟机(以下称“Linux主机”或“主机B”)中,使用命令 # ifup eth0激活对应网卡,使用 # ifconfig 确认被分配的IP地址。

DHCP配置

图1 路由器上的DHCP配置

ifconfig

图2 用ifconfig检查IP获取结果

3. 配置局域网端口转发

登陆路由器后台,设置相应的端口转发。转发4222端口的TCP和UDP数据包到Linux主机。

试着以公网方式访问这台主机,转发的是默认的ssh端口号,用ssh连接验证路由器转发设置。

端口转发设置

图3 路由器端口转发设置

用ssh验证转发设置

图4 用公网IP地址验证路由器转发设置

4. 设置DDNS

由于使用的是拨号上网,因此一旦断线重拨,IP地址就会发生变化,因此如果我们使用公网IP寻找Linux主机,这套机制的健壮性就会很差。

我们需要一个动态域名来改善这个问题。可用的DDNS服务提供商有“花生壳”等,笔者之前一直在用他家的服务,免费且可用性不错。

但由于极路由自带DDNS功能,因此本例中使用的是极路由的DDNS服务。

使用DDNS访问Linux主机

图5 使用DDNS访问Linux主机

至此,主机B基本建立完成。明天开始写主机A的配置过程,以及调试方法,届时有可能还需要在主机B这边做一些设置。

相关文章
最新文章
热点推荐