1. 目标:使位于内地或境外的服务能通过香港VPS的“原生IP”稳定、安全地访问目标API或数据库;小分段:a) "原生IP"即ISP归属地为香港的公网IP;b) 场景包括:跨境API调用、远程MySQL/Postgres访问、第三方白名单授权。
2. 选购:选择支持香港机房且能保证IP归属地为HK的VPS商(购买前查看WHOIS/GeoIP);小分段:a) 下单后用IP查询归属:whois
3. 操作:SSH登录VPS(ssh root@HK_IP);小分段:a) 开启内核转发:编辑 /etc/sysctl.conf,设置 net.ipv4.ip_forward=1,然后 sysctl -p;b) 确认内核转发生效:cat /proc/sys/net/ipv4/ip_forward 返回1。
4. NAT常用命令(以Linux为例):小分段:a) 若仅需出站走VPS,使用SNAT/MASQUERADE:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;b) 若需指定源IP走HK,可用iptables结合iproute2策略路由,示例:ip rule add from 192.168.10.0/24 table 100;ip route add default via
5. 数据库配置与安全:小分段:a) 修改数据库监听,MySQL在my.cnf中bind-address=0.0.0.0(或指定VPS内网IP),重启服务;b) 在VPS防火墙只放行必要IP或端口:iptables -A INPUT -p tcp -s <允许IP> --dport 3306 -j ACCEPT;c) 强烈建议使用TLS或SSH隧道而非直接开放3306到公网。
6. 实操步骤:小分段:a) SSH隧道(开发者常用):本地端口转发 mysql:ssh -L 3306:127.0.0.1:3306 user@HK_IP -N -f;b) OpenVPN/strongSwan:在VPS上搭建VPN服务,客户端加入后以内网方式访问DB/API;c) 反向代理/网关(用于API):使用nginx/haproxy在VPS做TLS终端和IP白名单。
7. 测试与排查:小分段:a) 验证出口IP:从目标客户端通过VPS发起 curl --interface eth0 https://ifconfig.co 或在VPS上 curl ifconfig.co;b) 测试DB连接:mysql -h 127.0.0.1 -P 3306 -u user -p(通过隧道)或直接 mysql -h HK_IP -P 3306 ...;c) 网络抓包定位:tcpdump -i eth0 port 3306。
8. 优化:小分段:a) 若跨境延迟高,考虑在应用层做重试/超时调整或使用CDN缓存API结果;b) 如果IP被目标服务封禁,需与对方沟通白名单申请或更换ISP;c) 监控:部署简单监控(ping、tcping、数据库连接数)并报警。
9. 问:我方希望第三方把香港VPS加入白名单,最安全的做法是什么?
答:答:提供VPS的固定公网IP与必要的端口信息,同时使用VPN或SSH隧道减少直接暴露;在数据库侧仅允许该IP并启用TLS认证、强口令与限速;如可能要求对方进行短期白名单测试并记录访问日志。
10. 问:如何在不牺牲可用性的前提下防止端口被滥用?
答:答:优先采用SSH隧道或VPN,仅在反向代理层做TLS终端并限制来源IP;使用Fail2ban、iptables限制速率;为管理端口启用双因素认证(SSH key + 2FA)。
11. 问:如果跨境API或DB访问不能连通,我应如何快速定位问题?
答:答:依次检查:a) 本地能否ping通HK VPS;b) VPS上是否开启ip_forward与iptables规则;c) 数据库是否在VPS上监听对应地址与端口;d) 使用tcpdump确认包是否进出;e) 查看目标服务是否在对端做了IP封锁或托管商限速。