1. 概述与准备工作
在开始前确认目的(对外服务/翻墙/测试等)和合规性。准备:一台可以访问互联网的电脑、PayPal/信用卡或可用付款方式、常用终端(Windows:PuTTY/PowerShell,macOS/Linux:Terminal)。建议先准备好SSH公钥(公钥内容如 id_rsa.pub)。
2. 选择供应商与购买台湾VPS(获取原生IP)
实际步骤:1) 在供应商网站选择台湾节点(Taichung/Taipei等)并确认“公网IP/裸IP(Public IPv4)”。2) 选择操作系统(推荐Ubuntu LTS或Debian)。3) 下单并记录管理面板的控制台、root密码或初始SSH信息。4) 申请是否支持反向DNS(rDNS),便于邮件和合规。
3. 首次连接与验证台湾IP
1) 首次用root或面板提供的账号SSH登录:ssh root@<你的IP>。2) 登录后立刻修改root密码(passwd)。3) 验证IP归属:curl -s ipinfo.io/json 或 apt install geoip-bin && geoiplookup
,确认 country 为 TW。
4. 创建非root用户并部署SSH公钥
1) 添加用户并加入sudo:adduser deploy && usermod -aG sudo deploy。2) 切换到用户,创建.ssh目录并设置权限:mkdir -p /home/deploy/.ssh && chmod 700 /home/deploy/.ssh。3) 将本地公钥复制到 /home/deploy/.ssh/authorized_keys 并 chmod 600;chown -R deploy:deploy /home/deploy/.ssh。
5. 修改SSH默认端口并禁用密码登录
1) 编辑 /etc/ssh/sshd_config:sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config(示例端口2222)。2) 禁用密码登录:将 PasswordAuthentication no 和 PermitRootLogin no 写入配置。3) 重启SSH:sudo systemctl restart sshd。4) 在本地测试新的端口:ssh -p 2222 deploy@(不要退出现有会话直到确认新会话可用)。
6. 基本系统更新与软件安装
执行:sudo apt update && sudo apt upgrade -y。安装必要工具:sudo apt install -y ufw fail2ban iptables-persistent curl vim。这些是后续安全与端口管理的基础。
7. UFW 防火墙基础规则(端口管理)
1) 允许必要端口:sudo ufw allow 2222/tcp(SSH新端口)、sudo ufw allow 80/tcp、sudo ufw allow 443/tcp。2) 若只允许特定IP SSH:sudo ufw allow from 1.2.3.4 to any port 2222。3) 启用并查看:sudo ufw enable && sudo ufw status verbose。
8. Fail2ban 提高登录安全
1) 启用sshd监控:在 /etc/fail2ban/jail.local 写入:[sshd] enabled = true port = 2222 filter = sshd maxretry = 5 bantime = 3600。2) 启动并查看状态:sudo systemctl restart fail2ban && sudo fail2ban-client status sshd。Fail2ban 会自动封禁暴力破解IP。
9. 端口转发与NAT(将公网端口映射到内网服务)
若VPS要把某个公网端口映射到内网或容器:1) 开启内核转发:echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf && sudo sysctl -p。2) NAT 示例(公网8080 转发到本机 80):sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80。3) 若转发到另一台内网机器(192.168.1.100:80):sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80 && sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT。4) 保存规则:sudo netfilter-persistent save 或 iptables-save > /etc/iptables/rules.v4。
10. 使用 nftables(现代替代iptables)示例
安装并启用 nftables:sudo apt install -y nftables && sudo systemctl enable --now nftables。示例规则文件 /etc/nftables.conf 可写入端口转发和过滤规则,语法与 iptables 不同,部署前查阅 nft 文档并测试。
11. 额外端口管理建议与实践
1) 尽量关闭不必要端口,仅开放必需服务。2) 对外暴露服务使用NAT端口映射并限制来源IP。3) 考虑端口混淆(非标准端口)与端口敲门(knockd)提高安全。4) 使用TLS(Let's Encrypt)保护HTTP/HTTPS流量。
12. 日志与监控(发现异常连接)
安装并配置日志工具:sudo apt install -y logwatch psad。psad 可检测端口扫描并报警;结合 fail2ban 对攻击IP自动封禁。定期查看 /var/log/auth.log 和 ufw日志来发现异常行为。
13. 备份、快照与恢复策略
定期在供应商面板创建快照或使用 rsync/rsnapshot 备份关键配置(/etc、/home/deploy/.ssh、iptables规则)。测试恢复流程,确保出现故障能快速用快照还原到已知安全状态。
14. 合规和运营注意事项
使用原生台湾IP仍需遵守当地法律及服务提供商条款。若用于邮件服务请配置PTR(rDNS)和SPF/DKIM/DMARC;若用于商业服务请确保隐私与日志保管符合规章。
15. 问:如何验证我的IP确实是“台湾原生IP”?
可以在VPS上运行 curl -s ipinfo.io/json 或者使用 geoiplookup 来检查 country 字段是否为 TW,同时通过 whois 或到 IP 归属查询网站确认该IP的ISP与城市信息;也可与供应商确认是否为本地线缆出口。
16. 问:如果SSH被封或被暴力破解,我该如何紧急恢复访问?
保留面板控制台或VNC访问以便在SSH不可用时进入主机;面板通常允许重置root密码、启动单用户模式或挂载磁盘进行修复。平时建议留一个可信的管理员IP白名单以减少风险。
17. 问:对外服务如何安全地开放多个端口,有没有推荐的端口管理流程?
先做风险评估,只开放必需端口;使用UFW/安全组限制来源IP;对高风险服务配置VPN或反向代理(如NGINX+TLS)并在边界做速率限制;启用日志告警与定期端口扫描(例如 nmap)来发现异常。
来源:零基础上手 台湾原生ip怎么搭建 安全配置与端口管理建议