端口映射在哪里做(如何端口映射)

>当我尝试在家搭建私人网盘nextcloud时,遇到一个难题:如何随时随地访问家里的服务器 ?业界有几种解决方案:

option1: 租用公网服务器,把应用部署在公网服务器上。优点:安全稳定,不需要维护设备;缺点:需要定期支付租赁费用。

option2: 应用部署在家用服务器上,依赖“内网穿透”(如frps/frpc)访问家庭网络。优点:适用家庭宽带没有公网IP的场景;缺点:需要租用公网服务器做“代理”,带宽受公网服务器限制。

option3: 应用部署在家用服务器上,用“端口映射”访问家庭网络。优点:带宽大,且无需租赁服务器;缺点:依赖运营商临时公网IP。

我尝试过option1和option2,出于成本考虑我选择性价比高的option3,毕竟长期租用服务器价格不菲,并且带宽越大费用也越高。本文是我个人的经验总结,供大家参考。

1 前提

开始之前,请确认是否满足下列条件,缺一不可。需要宽带拨号账号和密码;需要确认宽带使用公网IP;需要路由器有DDNS功能;需要获取光猫超级权限。

1.1 需要宽带拨号账号和密码

家庭宽带采用拨号上网,即PPPOE上网。通常宽带上门安装时,运营商工作人员会设置好光猫拨号上网,并提供用户名密码。如果不记得用户名密码,可拨打运营商热线电话询问。

1.2 确认宽带是否有公网IP

电信宽带往往会有动态公网IP(ipv4),而移动宽带通常没有动态公网IP,需要自己确认清楚。有一种方法可供确认:

1)查询家用网络对外IP地址:

IP地址查询

2)登录光猫查看WAN口IP地址:

以电信光猫为例,光猫背后往往有IP地址、账号、密码,如下图:

“光猫”铭牌

浏览器地址栏访问192.168.1.1,使用账号useradmin和密码登录,查询WAN口IP地址。

如果上述两个IP一致,表示家用宽使有公网IP。否则,可以尝试拨打运营商热线电话要求提供动态公网IP。

1.3 确认路由器DDNS功能

我使用的是小米AC2100,登录路由器管理地址选择“高级设置”会看到“DDNS”,这表示路由器具有DDNS(动态域名服务)功能。

小米路由器webUI

1.4 获取光猫的超级权限

光猫铭牌上的useradmin不是超级账号,telecomadmin才是超级账号,这里需要获得telecomadmin账号的密码。由于我的光猫年代久远(2015年),获取密码很简单,可以参考豆瓣文章《烽火HG261GS破解超级用户密码》。其他型号如果百度不到就求助万能的淘宝吧。

2 开始配置

2.1 配置光猫为桥接模式

浏览器登录光猫IP 192.168.1.1,输入超级账号telecomadmin,以及密码。

光猫webUI

进入“网络”——“宽带设置”——“Internet连接”,连接名称选择“4_INETERNET_B_VID_41”,连接类型选择“Bridge”,保存配置。注意,修改光猫配置会导致暂时断网。

光猫配置桥接模式

2.2 配置路由器PPOE上网

浏览器登录小米路由器管理IP地址(我已改为192.168.0.1),“常用设置”——“上网设置”,上网方式改为“PPPoE”,输入PPPoE拨号账号和密码,点击“应用”。

小米路由器webUI

路由器设置PPPoE上网

查看“上网信息”——“外网状态”出现“拨号成功”,即表示路由器拨号成功,网络已恢复。做到这一步,表示已完成了重要的一半。

路由器拨号成功

2.3 申请免费域名

我使用“公云(www.pubyun.com)”申请免费域名,注册登录后选择“动态域名”——“创建域名”,输入域名前缀,这里就填你想要的域名名字;仅勾选.f3322.net这个免费域名后缀。

pubyun申请免费域名

申请成功后通过“会员中心”可查看自己的域名:

pubyun会员中心

2.4 配置路由器DDNS

浏览器登录小米路由器管理IP地址(192.168.0.1),“常用设置”——“高级设置”——“DDNS”——“添加服务”。这里的“服务提供商”可以自由选择,因为我的免费域名是在“公云”申请的,因此选择“公云”。当状态显示“连接成功”,表示DDNS配置成功。

DDNS配置

DDNS配置成功

打开windows CMD输入”ping 域名”测试域名解析,如果ping通,表示域名解析已生效,否则可以点击“手动更新”。

域名解析测试

2.5 配置端口转发

浏览器登录小米路由器管理IP地址(192.168.0.1),“常用设置”——“高级设置”——“端口转发”——“添加规则”,配置你想暴露出去的【名称、协议、外部端口、内部IP地址、内部端口】,除了80和443端口不能用,其他端口都可以配置。以我的配置test为例,协议选择“TCP和UDP”,外部端口“8888”,内部IP地址为“windows本机IP”,内部端口“8888”。

端口转发配置

3 测试

3.1 启动windows本地测试服务

我用了nodejs的一个简单命令行http服务器http-server(需要安装nodejs,http-server库)做测试,服务器监听本地IP地址192.168.0.81的8888端口,如下所示:

启动测试程序http-server

浏览器输入http://192.168.0.81:8888测试http-server是否可访问,出现下面界面表示访问成功。

http-server访问测试

3.2 测试端口映射

浏览器输入“http://域名:8888”测试,出现下面界面表示端口映射成功!打开手机浏览器(关闭wifi,避免连上家里的局域网)访问“http://域名:8888”也能同样出现下面界面!这就是端口映射的魅力,即使不连接无线路由器,也能访问家里的服务。

端口映射测试

这是我搭建的nextcloud网盘界面,已经可以通过“域名:端口”的形式访问。

访问nextcloud

4 结语

尽管端口映射看起来很美好,但它仍然美中不足。最重要的一点是免费域名只能通过http访问,而不是https!http协议不会对数据进行加密,就好比你的数据在网络上传输是毫无防备的。

发布于 2021-12-09 20:34:51
收藏
分享
海报
0 条评论
94
上一篇:windows资源管理器已停止工作是什么原因造成的(windows资源管理器已停止工作是怎么回事) 下一篇:高中生怎么在手机上赚钱的方法(高中生怎么用手机赚钱)
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码