IEPL 流量款-深圳移动 IPv6 - 香港 IPv6 快速配置指南
系统准备
在开始之前,请确保您的系统满足以下条件:
- 已启用 IPv6 支持。
- 拥有
root
权限(或使用sudo
)。
本指南提供针对以下系统的 IPv6 配置方法:
- Debian 12
- 其他 Linux 发行版(需自行研究和调整)
快速配置一:修改 IPv6 地址
自动检测网卡并修改地址
以下命令直接复制粘贴使用。
sudo bash -c 'NIC=$(ip -6 addr | grep -B1 "scope global" | awk -F": " "/^[0-9]+:/{print \$2}" | head -n 1); if [ -z "$NIC" ]; then echo "Network interface not found"; exit 1; fi; PUBLIC_IP_WITH_MASK=$(ip -6 addr show dev $NIC | grep "scope global" | grep -v fd00 | grep -v fe80 | awk "{print \$2}" | head -n 1); PUBLIC_IP=$(echo "$PUBLIC_IP_WITH_MASK" | cut -d"/" -f1); PUBLIC_MASK=$(echo "$PUBLIC_IP_WITH_MASK" | cut -d"/" -f2); FD_IP_WITH_MASK=$(ip -6 addr show dev $NIC | grep "scope global" | grep fd00 | awk "{print \$2}" | head -n 1); FD_IP=$(echo "$FD_IP_WITH_MASK" | cut -d"/" -f1); FD_MASK=$(echo "$FD_IP_WITH_MASK" | cut -d"/" -f2); if [ -z "$PUBLIC_IP" ] || [ -z "$FD_IP" ]; then echo "Unable to detect IPv6 addresses"; exit 1; fi; ORIGINAL_GATEWAY=$(ip -6 route show default | head -n 1 | awk "{print \$3}"); if [ -z "$ORIGINAL_GATEWAY" ]; then echo "Unable to get original gateway"; exit 1; fi; systemctl stop networking; ip -6 addr flush dev $NIC; CONFIG_FILE="/etc/network/interfaces.d/50-cloud-init"; cat > "$CONFIG_FILE" << EOFCONFIG
auto lo
iface lo inet loopback
auto $NIC
iface $NIC inet6 static
address $PUBLIC_IP/$PUBLIC_MASK
gateway fd00::1
post-up ip -6 addr add $FD_IP/$FD_MASK dev $NIC
post-up ip -6 addr change $PUBLIC_IP/$PUBLIC_MASK dev $NIC preferred_lft 0
post-up ip -6 rule add from $PUBLIC_IP table 100
post-up ip -6 route add default via $ORIGINAL_GATEWAY dev $NIC table 100
dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
EOFCONFIG
ifup $NIC; echo "Configuration completed! Interface: $NIC Public IPv6: $PUBLIC_IP/$PUBLIC_MASK Private IPv6: $FD_IP/$FD_MASK Default gateway: fd00::1 Public return gateway: $ORIGINAL_GATEWAY"; echo ""; echo "Test 1: Ping original gateway using public IP"; ping6 -I $PUBLIC_IP -c 3 $ORIGINAL_GATEWAY; echo ""; echo "Test 2: Ping Google DNS"; ping6 -c 3 2001:4860:4860::8888'
解决 UDP 通信问题
如果发现 UDP 通信不通,请确保您的监听端口仅绑定到分配给您的公网 IPv6 地址,而非全局绑定。
可以使用以下命令精确获取您的公网 IPv6 地址:
NIC=$(ip -6 addr | grep -B1 'scope global' | awk -F': ' '/^[0-9]+:/{print $2}' | head -n 1)
PUBLIC_IPV6=$(ip -6 addr show dev $NIC | grep 'scope global' | grep -v fd00 | grep -v fe80 | awk '{print $2}' | cut -d'/' -f1)
echo "请绑定您的监听端口到: $PUBLIC_IPV6"
其他 Linux 发行版
对于非 Debian/Ubuntu 的系统(如 CentOS、Rocky Linux、Fedora),需要自行研究和调整相关配置。
功能说明
- 本指南确保系统的 IPv6 地址配置正确,并在系统重启后依然生效。
- 自动检测网卡和 IPv6 地址,适配不同网络环境。
- 使用脚本快速完成 IEPL IPv6 网络的配置。
如需进一步技术支持,请联系 HaloCloud 客服团队!