
写这篇文章的想法酝酿了大半年了。
事情要从去年说起。当时有个做外贸的朋友找到我,说想搞一批独立站做SEO,问我一台服务器能不能挂十几个网站,每个网站用不同的IP。我说可以啊,多买几个IP绑上去就行。他又问:那IP怎么买?买多少合适?怎么配置?会不会被封?
我噼里啪啦给他讲了两个小时,讲完他还是一脸懵。
后来我反思了一下,多IP这块的知识确实比较碎,网上的教程要么太简单只讲皮毛,要么太硬核新手看不懂。加上不同厂商政策不一样、不同系统配置方法不一样、不同场景需求也不一样,想找一篇能把所有问题都讲清楚的文章,还真挺难的。
正好我在这行摸爬滚打这么多年,踩过的坑、交过的学费也不少,干脆写一篇详细的教程出来,把从原理到实操、从选购到配置、从单IP到多IP的所有知识点都串起来。
文章会比较长,建议先收藏,用到的时候再翻出来看。
第一章:搞清楚基本概念
在开始折腾之前,有些基础概念必须先搞清楚,不然后面会越看越糊涂。
1.1 什么是IP地址
这个大家应该都知道,IP地址就是互联网上设备的”门牌号”。你访问任何一个网站,本质上都是在访问一个IP地址,只不过域名系统(DNS)帮你把域名翻译成了IP。
IP地址分两种:
IPv4:就是我们最常见的那种,比如 192.168.1.1、8.8.8.8 这样的格式,由四组数字组成,每组0-255。全球IPv4地址总共只有约43亿个,早就不够用了,所以现在很金贵。
IPv6:新一代IP地址,格式类似 2001:0db8:85a3:0000:0000:8a2e:0370:7334,长得像一串乱码。IPv6的地址数量多到离谱,理论上可以给地球上每一粒沙子都分配一个IP还绰绰有余。但目前普及率还不高,很多网站和服务还不支持。
我们平时说的”多IP”,如果不特别说明,一般指的都是IPv4。
1.2 公网IP和内网IP的区别
这个概念很重要,搞不清楚的话后面配置会出问题。
公网IP:可以直接在互联网上访问的IP,你买VPS拿到的那个IP就是公网IP。全球唯一,别人通过这个IP可以访问到你的服务器。
内网IP:只能在局域网内部使用的IP,比如你家路由器分配给你电脑的 192.168.x.x,出了你家这个网络就没人认识它。
VPS上配置多IP,配置的都是公网IP。但有个坑要注意:很多云服务器的公网IP是通过NAT映射的,你在系统里看到的可能是内网IP(比如 172.16.x.x 或 10.x.x.x),实际对外的公网IP是另一个。这种情况下配置多IP会稍微麻烦一点,后面会详细讲。
1.3 独立IP和共享IP
独立IP:这个IP只有你一个人在用,你想干嘛干嘛,不受别人影响。
共享IP:多个用户共用一个IP,最典型的就是虚拟主机。你和别人的网站挂在同一个IP下,如果有人搞违规内容被封IP,你也跟着遭殃。
做站群SEO、跨境电商、多账号运营这些业务,必须用独立IP。共享IP分分钟给你带来连带风险。
1.4 IP段和C段的概念
这个概念在买多IP服务器的时候经常会遇到。
IP地址按照前三组数字划分,同一个”C段”指的是前三组数字相同的IP。比如:
- 192.168.1.1
- 192.168.1.2
- 192.168.1.100
- 192.168.1.254
这四个IP就属于同一个C段(192.168.1.x)。
为什么要关心这个?因为搜索引擎和各种风控系统在判断是否是”同一个人”的时候,会参考IP段。同一个C段下的多个网站,很容易被判定为站群作弊。
所以买多IP服务器的时候,有两种选择:
- 同C段IP:便宜,但所有IP前三位相同,容易被识别
- 多C段/跨段IP:贵一些,但IP分散在不同段,更安全
根据你的业务需求选择,单纯做业务隔离用同C段就行,做SEO站群最好选多C段。
第二章:一台VPS到底能获取几个IP?
这是本文的核心问题,我按照不同情况详细说明。
2.1 国内大厂云服务器(阿里云、腾讯云、华为云等)
国内大厂的云服务器,默认配置是1个公网IP。
想要更多IP,需要购买弹性公网IP(EIP),然后绑定到你的服务器上。
能绑多少个?
理论上没有硬性上限,但实际受限于以下因素:
账户配额限制
每个账户默认有EIP配额,通常是20个左右。超过这个数量需要提交工单申请提升配额,说明用途后一般都能批。
实例规格限制
不同规格的云服务器,能绑定的弹性网卡数量不同。每张网卡能绑定的EIP数量也有限制。
以阿里云为例:
- 1核1G的入门实例:最多2张网卡
- 4核8G的通用实例:最多4张网卡
- 8核16G的高配实例:最多8张网卡
每张网卡通常能绑定1个主IP和若干辅助IP。
实际操作中,普通用户在一台国内云服务器上绑定5-15个IP是比较现实的范围。再多的话一是成本上去了,二是配置管理变得复杂。
价格怎么算?
EIP按带宽和使用时长收费,不同厂商略有差异。大概价格参考:
- 阿里云EIP:约20-30元/月/个(1M带宽)
- 腾讯云EIP:约18-25元/月/个(1M带宽)
- 华为云EIP:约20-28元/月/个(1M带宽)
如果需要10个IP,光IP费用每月就要200-300元,加上服务器本身的费用,成本不低。
所以国内云服务器适合IP需求不大(10个以内)的用户。需要几十上百个IP的,这条路走不通,成本太高。
2.2 海外主流VPS厂商
海外VPS厂商的IP政策相对灵活一些,但也有各自的规则。
Vultr
Vultr是很多人的入门选择,IP政策如下:
- 每台实例默认1个IPv4
- 可以购买额外IPv4,3美元/月/个
- 同一账户最多可以购买的额外IP数量有限制(通常是10-20个)
- IPv6基本不限量
优点是操作简单,控制台直接就能加IP。缺点是单个IP价格不便宜,批量采购不划算。
DigitalOcean
DigitalOcean的IP策略比较保守:
- 每台Droplet默认1个IPv4
- 想要额外IP必须提交工单申请
- 需要说明用途,审核通过后才能购买
- 价格约4美元/月/个
DigitalOcean对IP用途审核比较严,说是做站群大概率会被拒。可以用”多站点托管””业务隔离”之类的理由申请。
Linode
Linode的政策类似DigitalOcean,也是需要工单申请额外IP,而且要说明正当理由。价格大约是2美元/月/个,相对便宜一些。
BandwagonHost(搬瓦工)
搬瓦工默认只给1个IP,不支持购买额外IPv4。想要多IP的话只能多买几台VPS,每台一个IP。
总结
海外主流VPS厂商,单台机器能绑定的IP数量通常在1-20个之间,价格在2-5美元/月/个。适合IP需求中等的用户。
2.3 多IP服务器/站群服务器(重点推荐)
如果你需要几十甚至上百个IP,上面那些方案都不合适。这时候应该直接购买专门的多IP服务器或站群服务器。
这类产品专门为多IP需求设计,一台机器可以配置32个、64个、128个甚至256个以上的IP。单个IP的成本被摊得很低,适合做站群、爬虫、分布式业务的用户。
国内厂商推荐:余初云
说到多IP服务器,必须推荐一下我们余初云。
我在余初云工作,所以对自家产品比较了解。余初云在多IP服务器这块做得确实不错,几个优势:
IP资源丰富
余初云有美国、香港、日本、韩国、新加坡等多个机房,IP储备充足。可以提供同C段IP,也可以提供多C段混合IP,满足不同业务需求。
价格透明合理
价格采用”基础配置 + IP数量×单价”的模式,明码标价。批量采购IP的单价能压到很低,比去大厂买EIP划算太多。
举个例子:4核8G、100M带宽、128个IP的美国站群服务器,月付大概在600-800元之间。平均下来每个IP才5-6块钱,比阿里云腾讯云便宜好几倍。
IP质量有保障
这点很重要。有些便宜的多IP服务器,给的都是被滥用过的”脏IP”,买来就被各种网站拉黑了,根本没法用。
余初云的IP都是经过筛选的,交付前会检测确保可用。如果发现有问题的IP,可以免费更换。
技术支持到位
多IP服务器配置起来比普通VPS复杂,新手容易搞不定。余初云提供技术支持,配置过程中遇到问题可以找客服协助,响应速度也比较快。
支持试用
不确定适不适合自己的业务?可以先申请试用,测试没问题再正式下单。这点比较良心,很多厂商是不支持试用的。
如果你有多IP需求,真心建议去余初云官网看看,对比一下价格和配置。不是因为我在这工作就王婆卖瓜,是真的性价比高。
海外厂商参考
除了余初云,海外也有一些做多IP服务器的厂商,列几个供参考:
RAKsmart
美国老牌服务商,站群服务器做得比较久。优点是机房多、IP资源丰富;缺点是客服响应慢,工单有时候要等很久。
Megalayer
香港服务商,主打香港和菲律宾机房。香港机房延迟低,适合面向国内用户的业务。价格中等偏上。
HostWinds
美国服务商,价格相对便宜。但线路对国内用户不太友好,晚高峰可能会卡。适合做纯海外业务。
2.4 IPv6的情况
前面说的都是IPv4,如果你的需求IPv6能满足,那就是另一片天地了。
很多VPS厂商对IPv6非常慷慨。以Vultr为例,每台VPS可以免费获得一整个/64段的IPv6地址。一个/64段有多少IP?
算一下:2的64次方 = 18,446,744,073,709,551,616
对,你没看错,是一千八百亿亿个IP。理论上用到地球毁灭都用不完。
但IPv6目前的问题是兼容性不够好,很多网站、API、支付接口等还不支持IPv6访问。所以IPv6更多是作为IPv4的补充,而不是替代。
如果你的业务对IP要求不高,只是需要”看起来不同的IP”,可以考虑用IPv6来凑数,能省不少钱。
2.5 小结:不同需求的选择建议
| 需求场景 | IP数量 | 推荐方案 | 预算参考 |
|---|---|---|---|
| 个人建站、学习测试 | 1-2个 | 普通VPS默认配置 | 50-100元/月 |
| 小型多站点托管 | 3-10个 | 云服务器+EIP | 200-500元/月 |
| 中型站群、爬虫 | 10-50个 | 多IP服务器(余初云等) | 300-600元/月 |
| 大型站群、批量业务 | 50-256个 | 站群服务器(余初云等) | 500-1500元/月 |
| IP需求极大 | 256个以上 | 多台站群服务器组合 | 按需定制 |
第三章:多IP服务器选购避坑指南
选购多IP服务器有很多讲究,搞不好就交学费。这章把我踩过的坑和总结的经验都分享出来。
3.1 关于IP质量
这是最最最重要的一点,没有之一。
IP质量直接决定了你买的IP能不能用、好不好用。
什么叫IP质量差?
- 被搜索引擎标记为垃圾站群IP,新站上去就被降权
- 被社交媒体平台拉黑,登录就封号
- 被CDN和安全厂商标记为恶意IP,访问各种网站都要验证码
- 被GFW墙了,国内根本访问不了
这些”脏IP”是怎么来的?通常是被前任用户滥用过,做过违规业务,然后被退回IP池重新出售。
如何判断IP质量?
- 购买前询问IP来源:正规厂商会告诉你IP是直接从运营商拿的一手资源,还是从其他渠道收购的二手资源。
- 要求提供测试IP:正规厂商应该愿意提供几个IP让你先测试,你可以用这些工具检测:
- https://www.abuseipdb.com/ (检测IP是否被举报过)
- https://mxtoolbox.com/blacklists.aspx (检测IP是否在黑名单)
- https://ipinfo.io/ (查看IP的ASN和地理信息)
- 选择口碑好的厂商:像余初云这种做了多年的厂商,IP资源相对靠谱。那些刚冒出来的、价格低得离谱的,很可能是拿脏IP来卖。
- 了解换IP政策:再靠谱的厂商也不能保证每个IP都没问题,关键是出问题后能不能免费更换。购买前确认清楚换IP政策。
3.2 关于IP段的选择
前面讲过C段的概念,这里展开说说怎么选。
同C段IP
优点:
- 价格便宜
- 配置简单,同一网关同一子网掩码
- 管理方便
缺点:
- 容易被识别为同一批IP
- 一个IP出问题可能连累整个段
适用场景:
- 普通多站点托管
- 业务隔离(不涉及SEO)
- 爬虫IP池(配合代理轮换使用)
多C段/跨段IP
优点:
- IP分散,更难被关联
- 单个IP出问题不影响其他IP
- 更适合SEO站群
缺点:
- 价格更贵
- 配置相对复杂,每个段可能有不同的网关
适用场景:
- SEO站群
- 跨境电商多店铺
- 社交媒体多账号运营
- 对隐蔽性要求高的业务
如果预算有限但又想要一定的分散性,可以选择”2-4个C段混合”的方案,是个折中选择。
3.3 关于机房位置
机房位置决定了访问延迟和线路质量,选错了会很难受。
目标用户在国内
首选香港机房,延迟低(通常30-80ms)、不需要备案、大部分时候不用担心被墙。
其次是日本、韩国、新加坡,延迟稍高但也能接受。
美国机房对国内用户来说延迟太高(150-300ms),除非用了CN2优化线路,否则体验会比较差。
目标用户在海外
根据目标用户所在地区选择就近的机房。做美国市场就选美国机房,做欧洲市场就选欧洲机房。
余初云有多个机房可选,可以根据业务需求灵活选择。
做全球业务
可以考虑选择有BGP多线接入的机房,或者在多个地区各部署一台服务器。
3.4 关于带宽和流量
多IP服务器的带宽配置需要特别注意。
带宽类型
- 共享带宽:和其他用户共用一条大带宽,高峰期可能会拥堵。便宜,但不稳定。
- 独享带宽:这条带宽只有你一个人用,稳定有保障。贵,但体验好。
做正经业务建议选独享带宽,不差那点钱。
带宽大小
多IP意味着可能同时运行多个站点或服务,带宽需求会比单站点大。
经验值:
- 32个IP以内:50-100M带宽够用
- 64-128个IP:100-200M带宽
- 128个以上:200M以上或按需定制
流量限制
有些厂商的多IP服务器有流量限制,超出要额外付费。购买前看清楚是否限制流量,月流量上限是多少。
余初云的多IP服务器大部分套餐是不限流量的,这点比较厚道。
3.5 关于售后和技术支持
多IP服务器比普通VPS复杂,出问题的概率也更高。选一个售后靠谱的厂商很重要。
重点关注
- 工单响应速度:出了问题能不能及时处理?有些小厂商工单要等好几天。
- 技术支持能力:客服能不能真正解决技术问题?还是只会复制粘贴FAQ?
- 换IP政策:IP有问题能不能免费换?换IP要多久?
- 退款政策:用着不满意能不能退款?退款周期多长?
这些问题最好在购买前就问清楚,别等出了问题再抓瞎。
3.6 价格陷阱
最后说说价格方面的坑。
警惕超低价
某些厂商打出”128个IP只要99元/月”之类的超低价,基本可以确定有问题。要么是脏IP,要么是超售严重性能垃圾,要么是骗子跑路。
正常的市场行情,128个IP的站群服务器月付应该在500-1000元之间。低于这个区间太多的要小心。
注意隐藏费用
有些厂商基础套餐便宜,但IP要另外付费、带宽要另外付费、续费涨价……算下来总价并不便宜。购买前把所有费用加起来算清楚。
首购优惠和续费价格
很多厂商首购有大额优惠,续费恢复原价。如果打算长期使用,要看续费价格是多少,别被首购价格迷惑。
第四章:多IP配置实战教学
买到多IP服务器之后,怎么把IP配置起来?这章手把手教你操作。
4.1 前置知识:了解你的网络环境
在动手配置之前,先搞清楚几个关键信息。
SSH登录服务器
多IP服务器通常提供root账号和密码,用SSH工具登录:
ssh root@你的主IP
Windows用户可以用PuTTY、Xshell、FinalShell等工具。Mac和Linux直接用终端。
查看当前网络配置
登录后先看看现在的网络状态:
ip addr show
这个命令会列出所有网卡和已配置的IP。记下网卡名称,通常是 eth0 或 ens3 之类的。
查看网关信息
ip route show
找到 default via x.x.x.x 这行,后面的IP就是默认网关。
获取IP列表和配置信息
多IP服务器开通后,厂商会提供:
- IP地址列表
- 子网掩码
- 网关地址
- DNS服务器
这些信息通常通过邮件发送,或者在控制台可以查看。务必保存好,配置的时候要用。
4.2 配置方法一:单网卡多IP(最常用)
这是最常见的配置方式,在一张网卡上绑定多个IP地址。
CentOS 7/8 配置方法
CentOS使用 network-scripts 管理网络,配置文件在 /etc/sysconfig/network-scripts/ 目录下。
Step 1:备份原有配置
养成好习惯,改配置前先备份:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
Step 2:创建IP别名配置文件
假设要添加的IP是 192.168.1.101,创建配置文件:
nano /etc/sysconfig/network-scripts/ifcfg-eth0:0
写入以下内容:
DEVICE=eth0:0
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes
Step 3:继续添加更多IP
每个额外IP创建一个文件,命名依次为 ifcfg-eth0:1、ifcfg-eth0:2……
nano /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.102
NETMASK=255.255.255.0
ONBOOT=yes
以此类推。
Step 4:重启网络服务
systemctl restart network
Step 5:验证配置
ip addr show eth0
能看到所有配置的IP就说明成功了。
Ubuntu/Debian配置方法
Ubuntu 18.04及以后版本使用 Netplan 管理网络,配置文件在 /etc/netplan/ 目录下。
Step 1:备份原配置
cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
Step 2:编辑配置文件
nano /etc/netplan/01-netcfg.yaml
修改成类似这样的格式:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
- 192.168.1.102/24
- 192.168.1.103/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
多个IP直接在 addresses 下面列出来就行,格式是 IP/子网位数。
Step 3:应用配置
netplan apply
Step 4:验证
ip addr show eth0
老版本Ubuntu/Debian(使用interfaces文件)
如果是Ubuntu 16.04或更早版本,使用传统的 interfaces 文件:
nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0:0
iface eth0:0 inet static
address 192.168.1.101
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 192.168.1.102
netmask 255.255.255.0
重启网络:
systemctl restart networking
4.3 配置方法二:使用iproute2命令(临时生效)
如果只是临时测试,不需要持久化配置,可以用 ip 命令直接添加:
ip addr add 192.168.1.101/24 dev eth0
ip addr add 192.168.1.102/24 dev eth0
ip addr add 192.168.1.103/24 dev eth0
这种方式重启后会失效,适合临时测试用。
删除IP的命令:
ip addr del 192.168.1.101/24 dev eth0
4.4 配置方法三:批量配置脚本
如果IP数量很多,一个一个手动配置太累。分享几个我常用的脚本。
批量添加脚本(临时)
#!/bin/bash
# 批量添加IP地址
# 用法:./add_ips.sh eth0 192.168.1 100 200
# 参数:网卡名 IP前三段 起始序号 结束序号
INTERFACE=$1
IP_PREFIX=$2
START=$3
END=$4
if [ -z "$INTERFACE" ] || [ -z "$IP_PREFIX" ] || [ -z "$START" ] || [ -z "$END" ]; then
echo "用法:./add_ips.sh 网卡名 IP前缀 起始序号 结束序号"
echo "例如:./add_ips.sh eth0 192.168.1 100 200"
exit 1
fi
count=0
for i in $(seq $START $END); do
ip addr add ${IP_PREFIX}.${i}/24 dev $INTERFACE
if [ $? -eq 0 ]; then
echo "成功添加 ${IP_PREFIX}.${i}"
((count++))
else
echo "添加 ${IP_PREFIX}.${i} 失败"
fi
done
echo "完成!共添加 $count 个IP"
保存为 add_ips.sh,赋予执行权限:
chmod +x add_ips.sh
使用:
./add_ips.sh eth0 192.168.1 100 200
这会添加192.168.1.100到192.168.1.200共101个IP。
生成CentOS配置文件脚本
#!/bin/bash
# 为CentOS批量生成网卡配置文件
# 用法:./gen_centos_cfg.sh eth0 192.168.1 100 200
INTERFACE=$1
IP_PREFIX=$2
START=$3
END=$4
CONFIG_DIR="/etc/sysconfig/network-scripts"
if [ -z "$INTERFACE" ] || [ -z "$IP_PREFIX" ] || [ -z "$START" ] || [ -z "$END" ]; then
echo "用法:./gen_centos_cfg.sh 网卡名 IP前缀 起始序号 结束序号"
exit 1
fi
index=0
for i in $(seq $START $END); do
cat > ${CONFIG_DIR}/ifcfg-${INTERFACE}:${index} << EOF
DEVICE=${INTERFACE}:${index}
TYPE=Ethernet
BOOTPROTO=static
IPADDR=${IP_PREFIX}.${i}
NETMASK=255.255.255.0
ONBOOT=yes
EOF
echo "生成配置文件:ifcfg-${INTERFACE}:${index} -> ${IP_PREFIX}.${i}"
((index++))
done
echo "完成!共生成 $index 个配置文件"
echo "请执行 systemctl restart network 使配置生效"
生成Netplan配置脚本(Ubuntu)
#!/bin/bash
# 为Ubuntu生成Netplan配置
# 用法:./gen_netplan.sh eth0 192.168.1 100 200 192.168.1.1
INTERFACE=$1
IP_PREFIX=$2
START=$3
END=$4
GATEWAY=$5
if [ -z "$INTERFACE" ] || [ -z "$IP_PREFIX" ] || [ -z "$START" ] || [ -z "$END" ] || [ -z "$GATEWAY" ]; then
echo "用法:./gen_netplan.sh 网卡名 IP前缀 起始序号 结束序号 网关"
exit 1
fi
CONFIG_FILE="/etc/netplan/99-multi-ip.yaml"
cat > $CONFIG_FILE << EOF
network:
version: 2
ethernets:
$INTERFACE:
dhcp4: no
addresses:
EOF
for i in $(seq $START $END); do
echo " - ${IP_PREFIX}.${i}/24" >> $CONFIG_FILE
done
cat >> $CONFIG_FILE << EOF
gateway4: $GATEWAY
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
EOF
echo "配置文件已生成:$CONFIG_FILE"
echo "请执行 netplan apply 使配置生效"
4.5 多C段IP的特殊配置
如果你买的是多C段IP,配置会稍微复杂一些,因为不同C段可能有不同的网关。
举个例子,假设你有两个C段的IP:
- 192.168.1.x 段,网关 192.168.1.1
- 192.168.2.x 段,网关 192.168.2.1
这种情况需要配置策略路由,确保每个C段的流量走对应的网关。
Step 1:添加路由表
编辑 /etc/iproute2/rt_tables,添加自定义路由表:
echo "100 table1" >> /etc/iproute2/rt_tables
echo "101 table2" >> /etc/iproute2/rt_tables
Step 2:配置策略路由
# 第一个C段的路由
ip route add default via 192.168.1.1 dev eth0 table table1
ip rule add from 192.168.1.0/24 table table1
# 第二个C段的路由
ip route add default via 192.168.2.1 dev eth0 table table2
ip rule add from 192.168.2.0/24 table table2
Step 3:持久化配置
上面的命令重启后会失效,需要写入启动脚本或者rc.local中。
创建脚本 /etc/rc.local(如果没有的话):
#!/bin/bash
# 多C段路由配置
ip route add default via 192.168.1.1 dev eth0 table table1
ip rule add from 192.168.1.0/24 table table1
ip route add default via 192.168.2.1 dev eth0 table table2
ip rule add from 192.168.2.0/24 table table2
exit 0
赋予执行权限:
chmod +x /etc/rc.local
确保rc.local服务启用:
systemctl enable rc-local
这部分比较复杂,如果搞不定可以找厂商的技术支持帮忙。余初云的客服在这方面经验丰富,可以远程协助配置。
4.6 验证IP配置是否成功
配置完成后,务必验证所有IP是否正常工作。
方法一:本机检查
ip addr show
确认所有IP都显示在列表中。
方法二:外部ping测试
从另一台机器(比如你自己的电脑)ping每个IP,看是否都能通:
ping 192.168.1.100
ping 192.168.1.101
ping 192.168.1.102
方法三:批量测试脚本
#!/bin/bash
# 批量ping测试
# 用法:./test_ips.sh 192.168.1 100 200
IP_PREFIX=$1
START=$2
END=$3
success=0
fail=0
for i in $(seq $START $END); do
if ping -c 1 -W 1 ${IP_PREFIX}.${i} > /dev/null 2>&1; then
echo "${IP_PREFIX}.${i} - OK"
((success++))
else
echo "${IP_PREFIX}.${i} - FAIL"
((fail++))
fi
done
echo "测试完成:成功 $success 个,失败 $fail 个"
方法四:curl测试外网访问
测试每个IP是否能正常访问外网:
curl --interface 192.168.1.101 -s ifconfig.me
如果返回的IP和你指定的一致,说明配置正确。
第五章:多IP在Web服务中的应用
IP配置好了,接下来要让Web服务器识别和使用这些IP。
5.1 Nginx多IP配置
Nginx是目前最流行的Web服务器,配置多IP非常简单。
基础配置:每个站点绑定不同IP
# 站点A - 绑定IP 192.168.1.101
server {
listen 192.168.1.101:80;
server_name siteA.com www.siteA.com;
root /var/www/siteA;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 站点B - 绑定IP 192.168.1.102
server {
listen 192.168.1.102:80;
server_name siteB.com www.siteB.com;
root /var/www/siteB;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 站点C - 绑定IP 192.168.1.103
server {
listen 192.168.1.103:80;
server_name siteC.com www.siteC.com;
root /var/www/siteC;
index index.html index.php;
# ... 其他配置 ...
}
关键点是 listen 指令要写明具体的IP地址,格式是 IP:端口。
同时支持HTTP和HTTPS
server {
listen 192.168.1.101:80;
listen 192.168.1.101:443 ssl;
server_name siteA.com;
ssl_certificate /etc/ssl/siteA/fullchain.pem;
ssl_certificate_key /etc/ssl/siteA/privkey.pem;
# 强制HTTPS(可选)
if ($scheme = http) {
return 301 https://$host$request_uri;
}
root /var/www/siteA;
# ... 其他配置 ...
}
批量生成Nginx配置的脚本
如果站点很多,手动写配置太累。这里分享一个批量生成脚本:
#!/bin/bash
# 批量生成Nginx站点配置
# 用法:./gen_nginx_sites.sh sites.txt
# sites.txt格式:每行一个"域名 IP 目录",用空格分隔
SITES_FILE=$1
NGINX_CONF_DIR="/etc/nginx/sites-available"
NGINX_ENABLED_DIR="/etc/nginx/sites-enabled"
if [ -z "$SITES_FILE" ] || [ ! -f "$SITES_FILE" ]; then
echo "用法:./gen_nginx_sites.sh sites.txt"
exit 1
fi
while read -r line; do
domain=$(echo $line | awk '{print $1}')
ip=$(echo $line | awk '{print $2}')
webroot=$(echo $line | awk '{print $3}')
if [ -z "$domain" ] || [ -z "$ip" ] || [ -z "$webroot" ]; then
continue
fi
# 创建网站目录
mkdir -p $webroot
# 生成Nginx配置
cat > ${NGINX_CONF_DIR}/${domain}.conf << EOF
server {
listen ${ip}:80;
server_name ${domain} www.${domain};
root ${webroot};
index index.html index.php;
access_log /var/log/nginx/${domain}_access.log;
error_log /var/log/nginx/${domain}_error.log;
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
EOF
# 创建软链接启用站点
ln -sf ${NGINX_CONF_DIR}/${domain}.conf ${NGINX_ENABLED_DIR}/${domain}.conf
echo "已生成配置:${domain} -> ${ip}"
done < "$SITES_FILE"
echo "完成!请执行 nginx -t && systemctl reload nginx 使配置生效"
sites.txt 文件格式示例:
siteA.com 192.168.1.101 /var/www/siteA
siteB.com 192.168.1.102 /var/www/siteB
siteC.com 192.168.1.103 /var/www/siteC
5.2 Apache多IP配置
如果你用的是Apache,配置逻辑类似。
基础配置
编辑 Apache 配置文件(通常在 /etc/apache2/sites-available/ 或 /etc/httpd/conf.d/):
# 站点A
<VirtualHost 192.168.1.101:80>
ServerName siteA.com
ServerAlias www.siteA.com
DocumentRoot /var/www/siteA
<Directory /var/www/siteA>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/siteA_error.log
CustomLog ${APACHE_LOG_DIR}/siteA_access.log combined
</VirtualHost>
# 站点B
<VirtualHost 192.168.1.102:80>
ServerName siteB.com
ServerAlias www.siteB.com
DocumentRoot /var/www/siteB
<Directory /var/www/siteB>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/siteB_error.log
CustomLog ${APACHE_LOG_DIR}/siteB_access.log combined
</VirtualHost>
启用站点并重启Apache
# Ubuntu/Debian
a2ensite siteA.conf
a2ensite siteB.conf
systemctl restart apache2
# CentOS/RHEL
systemctl restart httpd
5.3 宝塔面板配置多IP
如果你用宝塔面板管理服务器,配置多IP站点也很方便。
Step 1:添加站点
在宝塔面板中点击”网站” -> “添加站点”,填写域名和根目录。
Step 2:修改监听IP
添加完成后,点击站点名称进入设置,找到”配置文件”选项。
把 listen 80; 改成 listen 你的IP:80;
例如:
listen 192.168.1.101:80;
Step 3:保存并重启
保存配置,然后在”服务”中重启Nginx。
宝塔面板的好处是图形化操作,适合不熟悉命令行的用户。但如果IP数量很多,还是建议用脚本批量处理。
第六章:常见问题排查
在配置和使用多IP的过程中,难免会遇到各种问题。这章整理了一些常见问题的排查思路。
6.1 IP配置后无法访问
这是最常见的问题。排查步骤:
1. 确认IP已正确配置
ip addr show | grep "你的IP"
如果没有显示,说明配置没生效,检查配置文件语法。
2. 检查网关和路由
ip route show
确认默认网关正确。如果是多C段IP,确认策略路由配置正确。
3. 检查防火墙
# iptables
iptables -L -n
# firewalld
firewall-cmd --list-all
# ufw
ufw status
确认没有把相关IP或端口block掉。
4. 检查云服务器安全组
如果是云服务器,登录控制台检查安全组规则,确保入站规则允许访问。
5. 检查SELinux(CentOS)
getenforce
如果是 Enforcing,尝试临时关闭测试:
setenforce 0
如果关闭后能访问了,说明是SELinux策略问题,需要配置正确的策略或永久关闭。
6.2 部分IP正常,部分IP不通
可能原因一:策略路由问题
多C段IP没有正确配置回程路由,导致数据包出去了但回不来。检查策略路由配置。
可能原因二:IP本身有问题
某些IP可能被上游封禁或标记异常。联系厂商更换IP。
可能原因三:IP冲突
极少数情况下,IP可能和其他设备冲突。用 arping 命令检测:
arping -I eth0 192.168.1.101
如果收到来自其他MAC地址的响应,说明IP冲突了。
6.3 网站能访问但显示其他站点内容
这说明Nginx/Apache的虚拟主机配置有问题,请求被路由到了错误的站点。
检查配置文件中的 listen 指令是否正确指定了IP。
6.4 IP能ping通但网站访问超时
可能原因一:Web服务没启动
systemctl status nginx
# 或
systemctl status apache2
可能原因二:Web服务没有监听该IP
netstat -tlnp | grep ":80"
# 或
ss -tlnp | grep ":80"
确认有在对应IP上监听。
可能原因三:防火墙只放行了ICMP没放行HTTP
检查防火墙规则,确保80/443端口已开放。
6.5 配置正确但重启后IP丢失
说明配置没有持久化。
- CentOS:检查
/etc/sysconfig/network-scripts/下的配置文件 - Ubuntu:检查
/etc/netplan/下的yaml文件 - 使用
ip命令添加的IP不会持久化,必须写入配置文件
6.6 多IP导致SSH连接不稳定
如果配置多IP后SSH经常断开,可能是源IP选择问题。
在SSH连接时指定源IP:
ssh -b 主IP root@服务器IP
或者在服务端配置SSH监听特定IP。
第七章:多IP服务器的安全加固
多IP服务器暴露的攻击面比单IP服务器大,安全加固非常重要。
7.1 基础安全措施
修改SSH端口
默认的22端口是攻击者扫描的重点,改成其他端口能过滤掉大部分自动化攻击。
编辑 /etc/ssh/sshd_config:
Port 65522
重启SSH:
systemctl restart sshd
禁用root直接登录
创建普通用户,配置sudo权限,禁用root登录:
# 创建用户
useradd -m -s /bin/bash myuser
passwd myuser
usermod -aG sudo myuser # Ubuntu
# 或
usermod -aG wheel myuser # CentOS
# 禁用root登录
# 编辑 /etc/ssh/sshd_config
PermitRootLogin no
使用密钥登录
禁用密码登录,只允许密钥认证:
PasswordAuthentication no
PubkeyAuthentication yes
7.2 配置防火墙
多IP环境下,防火墙配置尤为重要。
使用iptables
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许SSH(注意改成你的端口)
iptables -A INPUT -p tcp --dport 65522 -j ACCEPT
# 允许HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 默认拒绝其他入站流量
iptables -A INPUT -j DROP
# 保存规则
iptables-save > /etc/iptables.rules
使用firewalld(CentOS 7+)
# 添加允许的服务/端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=65522/tcp
# 重载配置
firewall-cmd --reload
7.3 配置Fail2ban
Fail2ban可以自动封禁恶意IP,防止暴力破解。
安装:
# Ubuntu/Debian
apt install fail2ban
# CentOS
yum install epel-release
yum install fail2ban
配置 /etc/fail2ban/jail.local:
[DEFAULT]
bantime = 86400
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = 65522
[nginx-http-auth]
enabled = true
[nginx-botsearch]
enabled = true
启动服务:
systemctl enable fail2ban
systemctl start fail2ban
7.4 定期更新系统
及时安装安全补丁:
# Ubuntu/Debian
apt update && apt upgrade -y
# CentOS
yum update -y
建议配置自动安全更新,或者定期手动更新。
7.5 监控和日志
配置日志集中管理
多个站点的日志分散在各处,不便于排查问题。建议:
- 统一日志存储路径
- 使用ELK或其他日志系统集中分析
- 定期清理旧日志,避免磁盘占满
设置监控告警
使用Zabbix、Prometheus+Grafana或者简单的脚本,监控服务器状态:
- CPU/内存/磁盘使用率
- 网络流量
- 各站点可用性
- 异常登录尝试
第八章:性能优化建议
多IP服务器通常承载多个站点,性能优化很重要。
8.1 系统层优化
调整内核参数
编辑 /etc/sysctl.conf:
# 增加文件描述符限制
fs.file-max = 1000000
# 优化TCP
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
# 优化内存
vm.swappiness = 10
应用配置:
sysctl -p
调整文件描述符限制
编辑 /etc/security/limits.conf:
* soft nofile 1000000
* hard nofile 1000000
root soft nofile 1000000
root hard nofile 1000000
8.2 Nginx优化
# 主配置文件优化
worker_processes auto;
worker_rlimit_nofile 100000;
events {
worker_connections 65535;
use epoll;
multi_accept on;
}
http {
# 开启sendfile
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# 开启Gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
# 开启缓存
open_file_cache max=100000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# 客户端缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
8.3 PHP优化(如果用PHP)
配置OPcache
编辑 php.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
调整PHP-FPM
编辑 PHP-FPM 配置(通常在 /etc/php/8.1/fpm/pool.d/www.conf):
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
具体数值根据内存大小调整。
8.4 数据库优化
如果多个站点共用一个数据库实例,需要注意资源分配。
MySQL优化
编辑 /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
# 缓冲池大小(设置为可用内存的60-70%)
innodb_buffer_pool_size = 2G
# 日志文件大小
innodb_log_file_size = 512M
# 连接数
max_connections = 500
# 查询缓存(MySQL 8.0已移除)
# query_cache_size = 128M
# 临时表
tmp_table_size = 64M
max_heap_table_size = 64M
考虑读写分离
如果站点数量多、访问量大,可以考虑搭建主从复制,读操作走从库,降低主库压力。
8.5 使用缓存
Redis缓存
对于动态内容较多的站点,使用Redis缓存能显著提升性能。
安装Redis:
apt install redis-server
# 或
yum install redis
配置 /etc/redis/redis.conf:
maxmemory 512mb
maxmemory-policy allkeys-lru
然后在应用层配置使用Redis缓存。
第九章:余初云多IP服务器实战案例
前面讲了这么多理论和通用配置,这章用一个实际案例串一遍,从购买到上线的完整流程。
9.1 案例背景
朋友老王做跨境电商,需要运营多个独立站,每个站点要用不同的IP以规避平台风控。需求如下:
- 30个独立站点
- 每个站点独立IP
- 面向欧美用户
- 预算有限
9.2 选型过程
对比了几个方案:
方案一:买30台便宜VPS
每台月付3-5美元,30台就是90-150美元。
优点:完全隔离 缺点:管理麻烦,30台服务器要维护
方案二:一台服务器+购买EIP
大厂云服务器+30个EIP,光IP费用就要600+元/月。
优点:大厂稳定 缺点:成本太高
方案三:余初云多IP服务器
4核8G配置+32个IP,美国机房,月付约500元。
优点:成本适中,管理方便 缺点:需要一定配置能力
最终选择了方案三。
9.3 购买流程
在余初云官网选择多IP服务器产品:
- 选择机房:美国洛杉矶(目标用户在欧美)
- 选择配置:4核8G,100G SSD
- 选择带宽:100M独享
- 选择IP数量:32个(2个C段混合)
- 选择系统:Ubuntu 22.04
下单付款后,大约30分钟收到开通邮件,包含:
- 主IP和SSH端口
- root密码
- IP地址列表
- 网关和DNS信息
9.4 系统初始化
连接服务器
ssh root@主IP -p 22
更新系统
apt update && apt upgrade -y
设置时区
timedatectl set-timezone UTC
配置安全措施
修改SSH端口、创建普通用户、配置密钥登录、安装Fail2ban(参考前面的安全加固章节)。
9.5 配置多IP
收到的IP列表是这样的:
C段1:192.168.1.100 - 192.168.1.115(16个)
C段2:192.168.2.100 - 192.168.2.115(16个)
网关1:192.168.1.1
网关2:192.168.2.1
配置IP地址
使用前面的脚本批量生成Netplan配置:
nano /etc/netplan/99-multi-ip.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
- 192.168.1.102/24
# ... 省略中间的IP ...
- 192.168.1.115/24
- 192.168.2.100/24
- 192.168.2.101/24
# ... 省略中间的IP ...
- 192.168.2.115/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
应用配置:
netplan apply
配置策略路由
由于有两个C段,需要配置策略路由:
# 添加路由表
echo "100 c1" >> /etc/iproute2/rt_tables
echo "101 c2" >> /etc/iproute2/rt_tables
# 配置路由(写入启动脚本)
cat > /etc/rc.local << 'EOF'
#!/bin/bash
ip route add default via 192.168.1.1 dev eth0 table c1
ip route add default via 192.168.2.1 dev eth0 table c2
ip rule add from 192.168.1.0/24 table c1
ip rule add from 192.168.2.0/24 table c2
exit 0
EOF
chmod +x /etc/rc.local
执行一次使其生效:
/etc/rc.local
验证配置
# 检查所有IP
ip addr show
# 测试各IP外网访问
for ip in 192.168.1.{100..115} 192.168.2.{100..115}; do
result=$(curl --interface $ip -s ifconfig.me 2>/dev/null)
echo "$ip -> $result"
done
确认所有IP都能正常使用。
9.6 部署Web环境
安装LEMP环境
# 安装Nginx
apt install nginx -y
# 安装MySQL
apt install mysql-server -y
mysql_secure_installation
# 安装PHP
apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y
# 安装Redis
apt install redis-server -y
批量生成站点配置
创建站点配置文件 sites.txt:
site01.com 192.168.1.100 /var/www/site01
site02.com 192.168.1.101 /var/www/site02
site03.com 192.168.1.102 /var/www/site03
# ... 以此类推 ...
site30.com 192.168.2.113 /var/www/site30
使用前面的批量生成脚本创建Nginx配置:
./gen_nginx_sites.sh sites.txt
测试并重载Nginx:
nginx -t
systemctl reload nginx
9.7 部署网站程序
老王用的是WooCommerce,需要在每个站点目录下安装WordPress。
写了个简单的脚本批量部署:
#!/bin/bash
# 批量部署WordPress
SITES_FILE="sites.txt"
WP_VERSION="6.4"
while read -r line; do
domain=$(echo $line | awk '{print $1}')
webroot=$(echo $line | awk '{print $3}')
if [ -z "$domain" ] || [ -z "$webroot" ]; then
continue
fi
echo "部署 $domain ..."
# 创建目录
mkdir -p $webroot
# 下载WordPress(如果还没下载)
if [ ! -f /tmp/wordpress.tar.gz ]; then
wget -O /tmp/wordpress.tar.gz https://wordpress.org/wordpress-${WP_VERSION}.tar.gz
fi
# 解压
tar -xzf /tmp/wordpress.tar.gz -C $webroot --strip-components=1
# 设置权限
chown -R www-data:www-data $webroot
chmod -R 755 $webroot
echo "$domain 部署完成"
done < "$SITES_FILE"
echo "全部完成!"
9.8 后续工作
- 配置SSL证书(使用Let’s Encrypt)
- 配置DNS解析(将各域名指向对应IP)
- 安装必要的WordPress插件
- 配置自动备份
- 设置监控告警
整个项目从购买到上线大约花了一天时间,主要时间花在批量部署网站内容上。服务器和IP配置本身不复杂,按照教程走就行。
第十章:总结与建议
写到这里,这篇文章已经很长了。最后做个总结,把关键点再梳理一遍。
10.1 核心要点回顾
- 一台VPS能获取几个IP?
- 普通云服务器:通过EIP可扩展到5-20个
- 海外VPS:通常1-20个
- 多IP/站群服务器:32-256个甚至更多
- IPv6:基本无限
- 选择多IP服务器的关键考量
- IP质量最重要,别贪便宜买脏IP
- 根据业务需求选择同C段或多C段
- 机房位置要匹配目标用户
- 带宽和流量要够用
- 售后服务要靠谱
- IP配置的核心步骤
- 单网卡多IP:通过IP别名或Netplan配置
- 多C段:需要配置策略路由
- Web服务器:listen指令指定具体IP
- 安全和性能不能忽视
- 基础安全措施必须做
- 系统和应用层优化很重要
- 定期更新和监控
10.2 厂商推荐
如果你有多IP需求,真心推荐试试余初云。
我在余初云工作,对产品比较了解。我们的多IP服务器有几个优势:
- IP资源丰富:美国、香港、日本等多个机房可选
- IP质量有保障:经过筛选,出问题可免费更换
- 价格合理透明:批量IP成本很低
- 技术支持到位:配置遇到问题可以协助解决
- 支持试用:不满意可以试用
有兴趣的可以去官网看看,对比一下价格和配置。
10.3 给不同用户的建议
给新手
先从单IP VPS玩起,熟悉Linux和Web服务配置。等有了多IP需求再升级,避免一上来就搞太复杂的东西。
给站群SEO从业者
IP质量和分散性是关键。选择多C段IP,定期检测IP是否被标记。不要在同一批IP上做太激进的操作。
给跨境电商从业者
稳定性最重要。选择靠谱的厂商,做好备份,IP出问题能快速切换。
给技术爱好者
多IP服务器是很好的学习平台,可以练习网络配置、批量运维、自动化脚本等技能。折腾的过程就是学习的过程。
这篇文章写了快两万字,应该是目前全网最详细的多IP VPS教程了。
如果对你有帮助,欢迎收藏转发。有问题可以留言讨论,看到都会回复。
就这样,收工。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/dynamicip/vpsbh/1992.html
