Debian/Centos下多ip的使用

有个多ip的vps,怎样充分利用ip资源呢?有个方法就是为不同的用户指定ip出口,然后以该用户身份运行程序,这个程序就会使用指定的ip了。
以下须在root权限下执行,无特殊说明以debian为例:
1、添加新用户:

adduser user1

【user1】就是用户名,运行后按提示设置密码等信息。
centos等系统要运行passwd设置密码。
2、利用iptables让某用户使用指定IP出口:

iptables -t mangle -A OUTPUT -m owner –uid-owner 1001 -j MARK –set-mark 1001
iptables -t nat -A POSTROUTING -m mark –mark 1001 -j SNAT –to-source 10.20.30.40

其中,三个【1001】是用户ID,通过cat /etc/passwd 查看。【10.20.30.40】是指定用户使用IP。请自行替换。
如果提示iptables: No chain/target/match by that name.那么是没有加载ipt_owner和ipt_mark模块,vps的话还得联系客服启用。
3、将其加入开机启动、保存规则:
3.1、将iptables配置保存到/etc/iptables,这个文件名可以自己定义,与下面的配置一致即可

iptables-save /etc/iptables

3.2、创建自启动配置文件,并授于可执行权限

touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

3.3、编辑该自启动配置文件,内容为启动网络时恢复iptables配置

vim /etc/network/if-pre-up.d/iptables

文件内容如下:

#!/bin/sh
/sbin/iptables-restore /etc/iptables

3.4、:wq保存配置文件并退出即可,以后在修改完iptables配置之后只要再次执行下面的命令保存即可 iptables-save > /etc/iptables
如果是centos那么使用如下命令即可达到相同效果:

chkconfig –level 345 iptables on
service iptables save

执行以上命令就成功了,用user1登录,那么运行的程序流量就按设置的Ip出去了,如果有更多ip,可以依此类推。

发表评论

邮箱地址不会被公开。 必填项已用*标注