[VPS] Conoha双IP在Ubuntu下的配置与shadowsocks的设置姿势

嘛……为了追求极致稳定的艹墙体验,又买了Conoha的一个IP(350日元/月),比买一个VPS便宜好多呢,结果配置的时候快被搞炸了……

关于Linux的使用和网络方面的概念我懂的其实也很少,如果出现错误望指正!

Conoha方面在添加新的IP后不会给你自动做好interface,所以需要用户自主操作。Conoha官方提供了一篇给CentOS的教程,可惜我是Ubuntu,这两个发行版网络方面差别还挺大的其实……

假定我们有两个公网IP,信息如下:

Interface IP Address Gateway
eth0 10.10.10.10 10.10.10.1
eth1 10.10.15.15 10.10.15.1

首先第一步是编辑/etc/network/interfaces,在原有的基础上填上一些内容。修改后interfaces是这样的,你需要按实际情况修改eth1的IP和掩码:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
accept_ra 1

auto eth1
iface eth1 inet static
address 10.10.15.15
netmask 255.0.0.0

重启网络后你就能在ifconfig内看到eth1啦。

然后就是路由的问题了,先在/etc/iproute2/rt_tables内添加两行(Old用于原来的IP,new用于后来添加的IP)

252     old
251     new

这里我写的是old和new,实际上你可以取你自己喜欢的名字啦~

然后就是在/etc/rc.local的exit 0之前添加这些

ip route flush table old
ip route add default via 10.10.10.1 dev eth0 src 10.10.10.10 table old
ip rule add from 10.10.10.10 table old
ip route flush table new
ip route add default via 10.10.15.1 dev eth1 src 10.10.15.15 table new
ip rule add from 10.10.15.15 table new

这样两个IP都能正确的访问到我们的这一台VPS,同时VPS本身还是通过eth0来访问网络~

如果此时你的追加IP仍然不能Ping通,但是如果将追加IP的网关设置为默认网关后,可以正常上网,那么请检查VPS的控制面板中,追加IP的入站授权设置(如下图)!

ConoHa控制面板(部分)
ConoHa控制面板(部分)

如果设为默认网关还是不能上网……自己检查一下IP之类的东西有没有错吧……

然后就是Shadowsocks的设置了。我采用了supervisor来管理两个不同的shadowsocks服务端,首先写两个不同的配置文件:

/etc/shadowsocks/public.json

{
    "server":"10.10.10.10",
    "server_port":12450,
    "local_port":1080,
    "password":"public password",
    "timeout":600,
    "method":"aes-256-cfb"
}

/etc/shadowsocks/private.json

{
    "server":"10.10.15.15",
    "server_port":12450,
    "local_port":1080,
    "password":"private password",
    "timeout":600,
    "method":"chacha20"
}

然后呢,在写两个supervisor的配置文件:

/etc/supervisor/conf.d/shadowsocks_public.conf

[program:shadowsocks_public]
command=ssserver -c /etc/shadowsocks/public.json
autostart=true
autorestart=true
user=nobody

/etc/supervisor/conf.d/shadowsocks_private.conf

[program:shadowsocks_private]
command=ssserver -c /etc/shadowsocks/private.json
autostart=true
autorestart=true
user=nobody

所有的一切完成后,重启VPS,然后拿出你的设备开始测试吧~