1.
准备与选厂商:如何获取台湾原生IP与服务器
- 说明:先选台湾本地VPS或独服提供商(支持在同一机房分配多个公网IP)。
- 操作:联系厂商购买服务器并申请额外公网IP(通常以 /32 或 /29 分配);确认是否能提供反向DNS绑定与路由网关信息;务必保留网关、子网掩码与运营商要求的备案资料。
- 注意:若使用云厂商(如阿里、AWS、GCP在台区),确认能否购买“弹性公网IP”并绑定多IP;传统机房通常能直接追加IP段。
2.
系统准备:安装基本工具与内核转发
- 说明:以Ubuntu/Debian为示例。
- 操作命令示例:apt update && apt install -y iproute2 iptables net-tools vlan iptables-persistent;编辑 /etc/sysctl.conf 并启用 net.ipv4.ip_forward=1,然后 sysctl -p。
- 目标:确保系统支持多IP、策略路由与包转发。
3.
给网卡添加多个台湾IP(临时测试)
- 说明:先用临时命令验证IP能通。假设主网卡为 eth0,网关为 GATEWAY,额外IP为 TA_IP1/32。
- 操作命令:ip addr add TA_IP1/32 dev eth0;ip addr add TA_IP2/32 dev eth0。使用 ip addr show 确认。
- 注意:/32 或 /128 常用于额外IP,厂商通常会说明必须通过主网关路由。
4.
策略路由:按源IP分流出口(核心步骤)
- 说明:为每个源IP建立单独路由表,保证出包走对应IP与网关。
- 编辑 /etc/iproute2/rt_tables,添加例如:101 ta1;102 ta2。
- 操作命令示例:ip route add default via GATEWAY dev eth0 table ta1;ip rule add from TA_IP1/32 table ta1;ip route flush cache。重复为 TA_IP2 使用 ta2。
- 验证:ip rule show 与 ip route show table ta1,使用 curl --interface TA_IP1 ifconfig.co 验证出口IP。
5.
使用iptables做SNAT(当内部使用私网时)
- 场景:若在内网或容器中,将私有IP映射到台湾公网IP。
- 操作命令:iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -j SNAT --to-source TA_IP1;保存规则:iptables-save > /etc/iptables/rules.v4。
- 建议:结合 conntrack 和限速模块做防滥用。
6.
用网络命名空间(netns)实现账号级隔离
- 说明:网络命名空间可以把每个账号或服务放入独立网络环境并绑定专属台湾IP。
- 基本流程:ip netns add ns1;ip link add veth-ns1 type veth peer name veth-host-ns1;ip link set veth-ns1 netns ns1;在 ns1 内配置 ip addr add 10.200.1.2/24 dev veth-ns1 并ip route add default via 10.200.1.1。
- 在 host 上将 veth-host-ns1 配置 SNAT:iptables -t nat -A POSTROUTING -s 10.200.1.0/24 -j SNAT --to-source TA_IP1,同时为 ns1 的流量做 ip rule 指向表 ta1,保障出口为 TA_IP1。
7.
Docker 与容器方案:macvlan 或 macvtap 的使用
- 说明:容器默认走宿主机网络,若需原生IP,推荐 macvlan。
- 操作(Docker):docker network create -d macvlan --subnet=TA_SUBNET --gateway=GATEWAY -o parent=eth0 ta_macvlan;docker run --network ta_macvlan --ip=TA_IP1 ...。
- 注意:macvlan 会隔离宿主机与容器间通信,必要时需创建桥接或用 veth 做转发。
8.
持久化配置:netplan 或 /etc/network/interfaces 示例
- netplan 示例(Ubuntu 18.04+):在 /etc/netplan/01-netcfg.yaml 中添加多个 addresses: - TA_IP1/32,并在 routes 或 routing-policy 中设置策略路由。
- /etc/network/interfaces 示例:auto eth0:1 iface eth0:1 inet static address TA_IP1 netmask 255.255.255.255;gateway GATEWAY(并同时在 /etc/iproute2/rt_tables 添加规则)。
- 保存并重启网络:netplan apply 或 systemctl restart networking。
9.
安全与合规:防火墙、登录与使用规范
- 建议:为每个账号或容器使用独立用户、SSH key,限制端口、开启 fail2ban,配置 iptables INPUT 规则只允许必要端口。
- 合规:遵守台湾当地法律与厂商条款,不进行垃圾邮件、爬虫滥发或违法行为,必要时向厂商申报用途以避免IP被回收。
10.
监控、日志与故障排查
- 监控:部署 Prometheus + node_exporter 监控流量与连接数;用 iptables counters 与 vnstat 记录带宽。
- 排查命令:ss -tunap 查看连接;tcpdump -i eth0 host 目标IP 采样抓包;ip rule、ip route 检查策略路由。
- 常见问题:额外IP无法出网 → 检查路由表与 ip rule,确认网关与 /32 配置;DNS 解析异常 → 检查 /etc/resolv.conf 与防火墙。
11.
性能与扩展:负载分担与IP轮换
- 负载:可在本地做 iptables-based round-robin 或 haproxy 根据源/账号做流量分流到不同后端或不同出口IP。
- IP轮换:脚本化使用 ip addr del/add 或在应用层切换出口,注意短时间内频繁切换可能触发厂商风控。
12.
常见问:如何在申请IP时避免被要求提供公司文件?
- 答案:部分台湾机房对个人申请额外IP会有审核;实务操作是提供使用说明、业务网站或服务说明,必要时与销售沟通选择可接受个人申请的机房;若被拒,可考虑购买已有多IP的VPS方案或使用合规的托管服务。
13.
常见答:如何保证每个账号的外网IP稳定、不会串号?
- 内容:使用独立网络命名空间或容器并绑定固定TA_IP到对应命名空间,配合 ip rule 指向专属路由表,能保证出流量始终使用该公网IP;同时将配置写入启动脚本或系统网络配置以实现重启持久化。
14.
常见问:若流量被限速或IP被封,如何处理与备援?
- 答案:准备备援IP或备援机房,把流量负载放在可快速切换的负载层(如反向代理/负载均衡器);同时遵守目标平台规则,分配请求速率与并发阈值,避免触发对方风控。记录封禁时间与封禁特征用于后续申诉或调整。