1.
准备阶段:选择与基础网络信息确认
- 确认云厂商与机房位置(例:东京(Tokyo) / 区域 ap-northeast-1)。
- 获取分配的公网IPv4/IPv6(示例:IPv4 203.0.113.12,IPv6 2001:db8::12)。
- 确认私有网络段与网关(示例私网 10.0.0.0/24,网关 10.0.0.1)。
- 查询默认路由与MTU,命令示例:ip route show;ip link show dev eth0。
- 检查供应商是否提供防火墙/安全组面板,记录默认允许的端口(通常仅22/SSH开放)。
2.
系统级开启IP转发与内核优化
- 临时开启:sysctl -w net.ipv4.ip_forward=1;sysctl -w net.ipv6.conf.all.forwarding=1。
- 永久生效:编辑 /etc/sysctl.conf 添加 net.ipv4.ip_forward=1,再执行 sysctl -p。
- 调优建议:net.ipv4.tcp_tw_reuse=1,net.ipv4.tcp_fin_timeout=30 等,按业务流量调整。
- MTU/分片注意:VPS 默认1500,VPN或隧道需降至1400或更小以避免分片。
- 验证转发:echo 1 >/proc/sys/net/ipv4/ip_forward;并用 tcpdump 抓包确认流量通过。
3.
端口映射(NAT/DNAT)基础命令与示例
- 基本目标:将公网端口(如80/443/22)映射到内网服务(192.168.1.100:8080)。
- iptables DNAT 示例:iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080。
- SNAT/源地址伪装:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE。
- 保存规则:在Debian/Ubuntu 使用 iptables-save >/etc/iptables.rules 并在 /etc/rc.local 加载。
- nftables 示例(现代系统):nft add rule nat prerouting tcp dport 80 dnat to 192.168.1.100:8080。
4.
路由表与策略路由(多网卡/多出口场景)
- 查看路由表:ip route show;示例默认路由 default via 203.0.113.1 dev eth0。
- 添加策略路由(基于源IP):ip rule add from 10.0.0.0/24 table 100;ip route add default via 203.0.113.1 dev eth0 table 100。
- 多ISP负载与备份:使用 iproute2 设置多个路由表并基于fwmark分发流量。
- 测试路径:traceroute -n -s
与 tcptraceroute 验证。
- 注意:云平台有时限制自定义路由,需在控制台开通VPC/路由表功能。
5.
域名、DNS与CDN接入流程
- 域名解析策略:A记录指向CDN或负载均衡器,若无CDN可直接指向公网IP。
- 示例DNS记录:example.jp A 203.0.113.12;AAAA 2001:db8::12。
- CDN接入(如Cloudflare/阿里云CDN):在DNS控制台将域名托管到CDN,并开启代理/加速。
- 原点保护:仅允许CDN节点或代理IP访问源站,防止直接暴露源IP(使用安全组或iptables)。
- 验证:dig +short example.jp;curl -I https://example.jp 查看返回的 CDN header。
6.
DDoS防护与防护策略实操
- 基础防护:限制连接速率(iptables connlimit/limit 模块),例:--limit 25/minute。
- 黑白名单:允许管理IP列表(仅允许公司网段SSH),其他IP拒绝。
- 使用CDN/Anycast:将流量吸收在边缘节点并仅将清洗后流量回源(示例使用Cloudflare Spectrum)。
- 自动化规则:fail2ban 针对SSH/HTTP爆破自动封禁,结合iptables黑名单。
- 监控与告警:部署Zabbix/Prometheus监控带宽与连接数,阈值触发自动扩容或切换净化服务。
7.
Web服务与反向代理配置示例(Nginx)
- Nginx 反代配置片段:server { listen 80; server_name example.jp; location / { proxy_pass http://192.168.1.100:8080; proxy_set_header Host $host; } }。
- HTTPS 建议:在CDN/负载均衡处终结TLS,或在Nginx配置Let's Encrypt证书。
- keepalive 与负载:upstream app { server 192.168.1.100:8080 max_fails=3 fail_timeout=30; }。
- 日志与访问控制:使用 access_log/error_log 并结合 fail2ban 解析nginx日志封禁恶意IP。
- 性能优化:开启 gzip,设置 client_max_body_size 与 worker_processes 根据CPU核数配置。
8.
真实案例:东京VPS承载电商应用的路由与端口映射
- 背景:客户在东京部署电商后端,公网IP 203.0.113.12,内网后端 192.168.10.20:8080。
- 要求:公网80/443对外,SSH仅公司办公网203.0.113.200开放,防止扫描。
- 实施步骤:开启net.ipv4.ip_forward,添加DNAT规则将80映射到192.168.10.20:8080,设置POSTROUTING MASQUERADE。
- 防护策略:接入Cloudflare,源站防火墙允许Cloudflare IP段并且仅放行203.0.113.200到22端口。
- 效果:上线后在一次中等流量攻击中,CDN吸收峰值,源站仅见到经过清洗的正常请求,平均延迟下降20%。
9.
示例端口映射表与常用端口说明
- 下表为常见公网端口到私有服务器的映射示例,便于运维快速查阅。
| 公网端口 | 协议 | 内网IP:端口 | 用途 |
| 22 | TCP | 192.168.10.5:22 | 管理SSH(限制到办公IP) |
| 80 | TCP | 192.168.10.20:8080 | HTTP 网站 |
| 443 | TCP | 192.168.10.20:8443 | HTTPS(通过反代/证书) |
| 3306 | TCP | 10.0.0.2:3306 | MySQL(建议仅内网可达) |
| 1194 | UDP | 192.168.10.1:1194 | OpenVPN/远程接入 |
10.
总结与运维建议
- 始终先在测试环境验证iptables/nft规则与路由策略,避免生产中断。
- 使用CDN与WAF作为第一道防线,源站通过防火墙白名单策略加固。
- 自动化备份与配置管理(Ansible/Terraform)保证可复现与快速恢复。
- 定期演练DDoS响应流程与端口变更流程,监控阈值要动态调整。
- 文档化所有变更(IP、端口、规则、证书),并对重要配置启用版本控制。
来源:如何开启日本服务器网络 路由设置与端口映射详细操作手册