在OpenWRT上自动重拨号获取公网IP(手记)

本文介绍了一个在OpenWRT环境下,通过编写脚本实现自动重拨号获取公网IP的方法,适用于家庭服务器或NAS设置。脚本会检测IP地址,若为私网则重拨,直到得到公网IP。

在这里插入图片描述

前言

哈喽,大家是否有过这样的经历:想在家里搭建一个小型的服务器、或者是一个NAS,但由于运营商提供的IP地址是一个内网地址,但有一定的概率能获得公网IP。这篇文章将手把手地教你如何编写一个简单的脚本,在OpenWRT上自动重拨号,直到我们获得一个公网IP!

脚本

#!/bin/sh
#通过命令传入两个参数
#参数1:线路名
line=${1-"unicom"}
#参数2:尝试重拨次数
times=${2-50}

for i in 
### 配置 OpenWrt 获取公网 IPv6 地址 在 OpenWrt 系统中,获取公网 IPv6 地址通常涉及 DHCPv6 或者 Prefix Delegation (PD) 的方式。以下是详细的配置说明: #### 1. 修改网络配置文件 `/etc/config/network` 在网络配置文件中定义接口以支持 IPv6 地址分配。对于 WAN 接口,可以启用 DHCPv6 和 PD 功能。 ```bash config interface 'wan' option proto 'dhcpv6' # 启用DHCPv6协议 option ifname 'eth0' # 替换为实际的外网接口名称 option reqaddress 'try' # 尝试请求IPv6地址 option reqprefix 'auto' # 自动请求前缀委派(PD) ``` 此配置会尝试通过 DHCPv6 协议向 ISP 请求一个或多个 IPv6 地址以及可能的一个 IPv6 前缀[^2]。 #### 2. 调整 DHCP 客户端和服务端设置 编辑 `/etc/config/dhcp` 文件来确保 LAN 设备能够获得基于 PD 分配的 IPv6 地址。 ```bash config dhcp 'lan' option ra 'server' # 发送路由器公告(Router Advertisement, RA) option dhcpv6 'server' # 开启DHCPv6服务模式 option ndp 'relay' # 启用邻居发现代理(NDP relay) option start '100' # 设置起始租约范围 option limit '500' # 设置最大租约数量 option leasetime '12h' # 租期时间设为12小时 ``` 这些选项允许局域网内的设备自动接收来自上游提供商的全球唯一 IPv6 地址[^2]。 #### 3. 处理 MTU 参数调整 如果遇到某些 IPv6 公网地址不可达的情况,则可能是由于链路层的最大传输单元(MTU)过高引起的。默认情况下,OpenWrt 的 MTU 可能设定得较高(通常是 1492 字节),而 IPv6 数据包头部额外占用了一些空间,因此建议降低 MTU 至适合值(如 1432 字节)以便兼容更多场景[^3]。 可以通过命令行临时更改 MTU: ```bash ifconfig eth0 mtu 1432 ``` 永久生效需加入启动脚本或者对应接口配置项里指定 `option mtu '1432'`. #### 4. 添加防火墙规则支持 ICMPv6 流量 为了保证正常的邻居发现过程和路径 MTU 发现机制工作良好,还需要开放必要的 ICMPv6 类型流量。可以在自定义防火墙上添加如下规则[^4]: ```bash iptables -I INPUT -p ipv6-icmp --icmpv6-type echo-request -j ACCEPT ip6tables -A INPUT -m state --state NEW -p udp --sport 547 --dport 546 -s fe80::/64 -d fe80::/64 -j ACCEPT ``` 以上操作完成后重启网络服务使改动生效即可完成整个流程。 ```bash /etc/init.d/network restart ``` ### 注意事项 确认硬件连接无误并且上联至互联网的服务商确实提供了合法可用的 IPv6 连接资源;另外还需留意是否有其他安全策略阻止了相关通信行为的发生。
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值