1.1 获取并记录供应商提供的信息:公网 IPv4/IPv6、网关、子网掩码、DNS、MAC 绑定(如有)、是否有反向 DNS(PTR)、是否需要申请 BGP。
1.2 确认服务器操作系统(Ubuntu/CentOS)与内核版本,检查是否支持所需网络驱动与 MTU(例如 1500 或 9000)。命令示例:uname -r; lspci | grep -i eth
1.3 准备远程控制通道(KVM/iLO/IPMI)以防网络配置错误导致无法远程访问。
2.1 Ubuntu(netplan)示例:在 /etc/netplan/01-netcfg.yaml 中写入(替换为真实 IP):
network: { version: 2, renderer: networkd, ethernets: { eth0: { addresses: [ "203.0.113.10/24" ], gateway4: "203.0.113.1", nameservers: { addresses: ["1.1.1.1","8.8.8.8"] } } } }
2.2 CentOS(ifcfg)示例:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,设置 IPADDR、NETMASK、GATEWAY、DNS1,然后 systemctl restart network 或 nmcli connection reload。
3.1 测试 MTU:ping -c 3 -M do -s 1472 8.8.8.8(1472+28=1500)。若失败逐步降低到成功值,记录最合适 MTU。
3.2 设置 MTU:ip link set dev eth0 mtu 9000(或在 netplan/ifcfg 中永久设置)。KT 网络对大 MTU 有时需要运营商支持,发生丢包时恢复 1500。
4.1 简单默认路由:ip route add default via 203.0.113.1 dev eth0 metric 100
4.2 多网卡或多线接入时用策略路由(ip rule/ip route)为不同源 IP 指定不同出口。例如:ip rule add from 198.51.100.10 table 200;ip route add default via 198.51.100.1 table 200。
4.3 NAT(若用于内网出站):iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE(或使用 nftables)。启用 ip_forward:sysctl -w net.ipv4.ip_forward=1 并写入 /etc/sysctl.conf。
5.1 建议使用 nftables 或 ufw 进行初级规则管理,复杂场景使用 iptables/nftables 脚本并放到启动脚本中。
5.2 最小化规则示例(iptables):
iptables -F; iptables -P INPUT DROP; iptables -P FORWARD DROP; iptables -P OUTPUT ACCEPT; iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT; iptables -A INPUT -p tcp --dport 22 -s 你的管理IP -j ACCEPT; iptables -A INPUT -p icmp -j ACCEPT; iptables -A INPUT -i lo -j ACCEPT
5.3 保存规则:Ubuntu 保存为 /etc/iptables.rules 并在 /etc/rc.local 恢复,或使用 iptables-persistent。
6.1 修改 /etc/ssh/sshd_config:禁止 root 直接登录 PermitRootLogin no,限制登录用户 AllowUsers adminuser,使用协议 2,关闭密码认证 PasswordAuthentication no(配合密钥)。
6.2 更换默认端口并重启 SSH:如 Port 22022。记住防火墙需放通新端口。
6.3 部署 fail2ban:apt install fail2ban 或 yum install fail2ban,配置 /etc/fail2ban/jail.local 针对 sshd 设置 ban 时间与阈值。
7.1 若需安全管理面板,建议部署 WireGuard 或 OpenVPN,示例 WireGuard 快速部署:apt install wireguard; wg genkey | tee privatekey | wg pubkey > publickey; 配置 /etc/wireguard/wg0.conf 并启用。
7.2 将管理流量放在专用 VLAN 或 VPN,生产流量与管理流量分离,防止一处被攻破导致全面暴露。
8.1 本地日志轮转:确保 rsyslog 与 logrotate 正常工作,配置 /etc/logrotate.d/ 定期归档。
8.2 远程日志与监控:将日志发到集中日志服务器(syslog/ELK/Graylog),部署 Prometheus + Grafana 监控网络、CPU、连接数、带宽。
8.3 DDoS:与 KT 协商上游清洗服务或使用云端 CDS;同时在服务器上限制 syn 队列、开启 conntrack 限制与速率限制(iptables -m limit/ufw 限速)。
9.1 自动更新与补丁:启用 unattended-upgrades(Ubuntu)或订阅安全更新(CentOS)。定期检查内核/服务补丁。
9.2 备份:配置定期远程备份(rsync/sftp/备份到对象存储),测试恢复流程。
9.3 最小化服务暴露,关闭不必要的端口:ss -tulpen 检查监听服务并移除不必要应用。
10.1 连通性测试:从外部网络使用 traceroute/tracert、mtr、curl -I 检查路径与响应时间。
10.2 日志排错:/var/log/syslog、/var/log/auth.log、dmesg 检查驱动、ARP 问题或 MTU 导致的分片问题。
10.3 若网络无法访问,使用 IPMI/KVM 登录,回滚最近的网络配置文件或恢复 netplan/ifcfg 备份文件。
问:在韩国 KT 的机房,如何确认供应商给的公网 IP 是否需要做 PTR(反向 DNS)?
答:向 KT 提供商询问是否支持 PTR 并提供你要绑定的主机名与 IP;有些托管面板可以提交 PTR 申请。测试方法:配置后使用 dig -x 203.0.113.10 +short 或 nslookup 进行验证。
问:部署后发现国内访问到韩国服务器延迟高或丢包,该如何诊断?
答:先用 mtr/traceroute 定位丢包在哪一跳(本地、KT 骨干、国际链路);核实 MTU 设置、检查是否被中间防火墙限速;与 KT 支持提交链路测试并请求线路清查或 BGP 优化。
问:如何在服务器上快速阻断来自某些恶意国家或 IP 段的流量?
答:可以用 ipset+iptables 批量封锁 IP 段(ipset create blacklist hash:net; ipset add blacklist 1.2.3.0/24; iptables -I INPUT -m set --match-set blacklist src -j DROP)。若流量很大应联系 KT 做上游封堵或使用清洗服务。