1.1 本教程目标:在菲律宾(PH)原生公网IP的VPS上搭建可对外提供代理服务的环境,并部署API以通过该代理访问外网或对外暴露受控接口。适用于需要菲律宾IP出口的爬虫、测试或本地化服务。
1.2 前提条件:已购买PH地区VPS(至少一个公网IP,建议支持附加公网IP)、能登录SSH、熟悉Linux基础命令、已准备好域名(可选)。
2.1 选供应商:优先选择支持原生公网IP、路由稳定、有良好客服和IP池的供应商(如部分全球主机商或菲律宾本地运营商提供商)。
2.2 配置建议:CPU 2核以上、内存2GB以上、SSD、带宽按需求(常规1~5Mbps起)。确认能申请额外/独立公网IP并支持IP绑定。
3.1 登录与更新:SSH登录后执行:apt update && apt upgrade -y(Debian/Ubuntu)或 yum update -y(CentOS)。
3.2 创建非root用户并配置SSH key:adduser devuser && usermod -aG sudo devuser;将公钥加入~/.ssh/authorized_keys,禁止密码登录,编辑 /etc/ssh/sshd_config 配置 PermitRootLogin no PasswordAuthentication no。
4.1 检查本机公网IP:curl -s https://ipinfo.io/ip 或 curl -s https://ifconfig.co;验证IP归属为菲律宾。
4.2 若有多个公网IP,需要供应商提供路由/ARP支持,记录每个公网IP、网关与子网掩码,以便后续配置IP别名。
5.1 临时添加IP(立即生效):sudo ip addr add <公网IP>/32 dev eth0(若供应商要求/32并指定网关,用 ip route add default via <网关> dev eth0 src <公网IP>)。
5.2 永久生效:Debian/Ubuntu使用 netplan 或 /etc/network/interfaces,根据系统写入相应静态配置;CentOS在 /etc/sysconfig/network-scripts/ifcfg-eth0:0 添加别名并重启网卡。
5.3 检查:ip addr show eth0,且用 curl 外部服务验证每个IP能否出网(需与对应src绑定测试)。
6.1 推荐安装并配置UFW或iptables:只开放SSH(22)、代理端口(如3128/8080/1080)与API端口(80/443/8000),示例:ufw allow 22/tcp && ufw allow 3128/tcp。
6.2 NAT与源地址选择:若你的代理需要不同出口IP,可用iptables的SNAT规则:iptables -t nat -A POSTROUTING -o eth0 -s <本地网段> -j SNAT --to-source <公网IP>(注意多IP与路由策略)。
7.1 Squid(HTTP/HTTPS代理)安装:sudo apt install squid -y,默认配置文件 /etc/squid/squid.conf。
7.2 基础Squid配置要点:设置http_port 3128;acl localnet src 0.0.0.0/0(按需限制);auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd(支持用户名/密码);通过 tcp_outgoing_address 指定不同出口IP:例如 tcp_outgoing_address 1.2.3.4 all。
7.3 3proxy(支持SOCKS/HTTP且轻量)示例:安装并编辑 /etc/3proxy/3proxy.cfg,配置 bind <公网IP>:port、auth strong、users "user:CL:pass" 并设置 proxy -n -a -pport -i<内网IP> -e<出口公网IP>。
8.1 后端API示例:Node/Python/Go任意语言,监听本地端口如8000。确保API能处理代理传来的X-Forwarded-For、Authorization等头。
8.2 Nginx作为反向代理:在 /etc/nginx/sites-available/yourapi 写:server{ listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }。
8.3 若API需要通过代理访问外部(即API本身发起请求需经菲律宾IP):在后端HTTP客户端配置代理地址(例如 HTTP_PROXY=http://user:[email protected]:3128),或在系统层设置环境变量。
9.1 若用域名并需HTTPS,建议使用Let's Encrypt:sudo apt install certbot && sudo certbot --nginx -d api.example.com。证书生成后Nginx会自动配置443转发。
9.2 若代理需TLS隧道(HTTPS代理),配置Squid或3proxy支持CONNECT并允许443端口转发,或使用stunnel为代理建立TLS包装。
10.1 验证代理:curl --proxy http://user:pass@
10.2 验证API通过代理出网:在API服务器上执行带代理的curl:curl -x http://user:[email protected]:3128 https://ifconfig.co,或让API触发外部请求并查看目标服务日志或返回的IP。
11.1 日志:Squid日志通常在 /var/log/squid/access.log;Nginx在 /var/log/nginx/。设置 logrotate 以防日志占满磁盘。
11.2 监控:配置fail2ban防 SSH/代理暴力破解,使用Prometheus+Node exporter或简单脚本监控出口IP连通性与延迟。
11.3 备份与自动化:用Ansible或脚本把配置管理化,便于重建或扩容。
12.1 合规性:确保你的使用符合菲律宾及目标国家法律法规、以及VPS供应商的服务条款,避免滥用(垃圾邮件、恶意扫描等)。
12.2 IP稳定性:部分供应商可能会重分配IP或启用NAT,请确认购买类型是“独立公网IP(native/public IP)”而非共享NAT出口。
问:菲律宾原生IP VPS与普通VPS的主要区别是什么?
答:答:原生IP指的是VPS直接绑定的公网IP,真实BGP或本地ISP路由,访问时目标站点看到的是该菲律宾IP;普通VPS若在NAT后面或使用共享出口,外部可能看到供应商的集中IP池或不同国家出口。原生IP更适合要求地理位置或IP归属国的场景。
问:如何保证代理IP长期稳定可用?
答:答:选择信誉好的供应商购买静态独立公网IP、确认供应商不会频繁重分配IP或做NAT;监控IP连通性并部署自动告警;必要时购买额外备选IP池并实现故障切换(路由或API层面)。同时遵守服务条款避免被封禁。
问:配置完成后常见故障如何排查?
答:答:先检查本机网络与IP是否正确(ip addr, curl ifconfig 服务);确认防火墙未阻断端口(ufw status / iptables -L);代理服务是否启动且监听正确端口(ss -lntp);查看代理与Nginx日志定位错误;若出口IP不对,检查iptables SNAT 和 tcp_outgoing_address 是否生效并匹配网关设置。