【H3C NX30Pro】光猫桥接并使用OpenWRT配置NAS端口映射;配置IPv6、IPv4公网直连内网服务器;

总览

一、光猫准备工作

1.超级管理员账户密码

首先要到当地超级管理员的账号和密码,可以找给你装宽带的师傅问。

2.登录光猫

二、设置 NAS 端口转发

1.配置

设置如图

三、配置 ipv6 公网直通

1.是否有能够创建服务的工具?

可以下载一个 python 3.10.11

2.windows 或者 linux 防火墙打开 8181 端口

请注意,不要使用 80 或者 8080 端口

有些路由器或者光猫会将这个端口封掉,要用不常见的端口。

bash 复制代码
netsh advfirewall firewall add rule name="Allow IPv6 8181" dir=in action=allow protocol=TCP localport=8181

如果你懒得配置入站和出站请求,那么你可以直接关掉整个防火墙来进行测试。

但是在生产环境中,为了安全,我们还是需要防火墙的。

3.打开 IPv6 监听服务

bash 复制代码
python -m http.server 8181 --bind ::

4.SSH 链接路由器

我们已经刷写了 OpenWRT 的路由器随便访问。

XShell,主机名 192.168.1.1,SSH 协议,密码就是你设置的密码。

如果还没有设置密码,默认密码为:password

5.配置路由器端 IPv6 防火墙规则

bash 复制代码
uci set firewall.@rule[11].name='Allow_HTTP_IPv6_8181'
uci set firewall.@rule[11].family='ipv6'
uci set firewall.@rule[11].src='wan'
uci set firewall.@rule[11].dest='lan'
uci set firewall.@rule[11].proto='tcp'
uci set firewall.@rule[11].dest_port='8181'
uci set firewall.@rule[11].target='ACCEPT'
uci delete firewall.@rule[11].dest_ip
uci commit firewall
/etc/init.d/firewall restart

上面这些都是对 防火墙 -> 通信规则 的设置,


这里要说明一下 ipv6 为何在 通信规则 里面而不是 NAT 端口转发(端口映射)里面。

端口映射只作用于 IPv4,而不限制 IPv6.

另外,我们设置的 Allow_HTTP_IPv6_8181 的转发规则是:
任何到达路由器 WAN6 的 TCP/8181 流量,会被转发进入 LAN。
如果目标 IPv6 是 你的电脑,就会被送过去。
但如果目标 IPv6 是路由器自己的地址(WAN IPv6),它不会被这条规则命中,因为 dest=lan 不是 device。

四、配置 IPv4 公网直通

1.SSH 连接到路由器,上面已经说了步骤

2.执行命令,设置 NAT 入站规则

注意,这里面我们采用的 192.168.2.230 是我们服务器的内网地址,8181 是放开的端口号,而 DNAT 的说明如下:

DNAT 全称 Destination Network Address Translation,

也就是 "目标网络地址转换"。

它工作在 防火墙的 PREROUTING 阶段,

当一个外部数据包(公网 → 路由器)进入时,

路由器会:

🔁 把目标 IP 改成你指定的内网 IP。

bash 复制代码
uci add firewall redirect
uci set firewall.@redirect[-1].name='Allow_HTTP_IPv4_8080'
uci set firewall.@redirect[-1].target='DNAT'
uci set firewall.@redirect[-1].src='wan'
uci set firewall.@redirect[-1].proto='tcp'
uci set firewall.@redirect[-1].src_dport='8080'
uci set firewall.@redirect[-1].dest='lan'
uci set firewall.@redirect[-1].dest_ip='192.168.2.230'
uci set firewall.@redirect[-1].dest_port='8181'
uci commit firewall
/etc/init.d/firewall restart

2.然后在服务器上运行一个服务,并在公网测试即可

比如:

bash 复制代码
python -m http.server 8181 --bind 0.0.0.0
相关推荐
小虾米vivian4 分钟前
dmetl5 web管理平台 监控-流程监控 看不到运行信息
linux·服务器·网络·数据库·达梦数据库
知码者4 分钟前
对于Thinkphp5可能遇到的保存问题
服务器·php·apache·小程序开发·跨平台小程序
老蒋新思维5 分钟前
创客匠人:从个人IP到知识变现,如何构建可持续的内容生态?
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
TG:@yunlaoda360 云老大6 分钟前
如何将外部镜像文件导入华为云国际站代理商的IMS服务?
linux·运维·华为云
Vect__9 分钟前
Linux常见工具使用
linux·服务器
老蒋新思维16 分钟前
创客匠人洞察:从“个人品牌”到“系统物种”——知识IP的终极进化之路
网络·人工智能·网络协议·tcp/ip·重构·创客匠人·知识变现
lin张20 分钟前
Ansible学习总结:从基础命令到Playbook实战
网络·学习·ansible
我是小邵21 分钟前
“域名托管”和“SSL 证书缺失”是什么关系?
网络·网络协议·ssl
珠海西格电力22 分钟前
零碳园区边缘计算节点规划:数字底座的硬件部署与能耗控制方案
运维·人工智能·物联网·能源·边缘计算
Henry Zhu12322 分钟前
VPP中ACL源码详解第六篇:多核和性能优化实现以及调试与观测
运维·网络·网络协议·计算机网络·性能优化