Vultr手动搭建shadowsocks, ipsec/StrongSwan及优化(附ipsec/ikev1服务器无响应的解决)

来源:互联网 发布:plc编程软件怎么下载 编辑:程序博客网 时间:2024/06/15 21:48

背景:本文详细记录了手动安装shadowsocks,ipsec(用于ios)的过程,及ipsec搭建完后,服务器一直无响应的问题解决方案。

因为要做站,所以想在除了搬瓦工上买个性能好点的vps。最先考虑的是linode,用的frement机房,东京机房没货。但是linode速度实在不敢恭维,ping值在300ms多,真的连搬瓦工都不如。后来经过研究大家的评测文章,最终买的vultr的vps,5美元的那个,东京机房。ping值在150ms左右,快的话在60多毫秒,但是会有丢包。下面分shadowsocks,StrongSwan,及优化三个部分来介绍。

一,shadowsocks的安装

最初我用的此处python版的一键安装脚本,但是安装后发现有时能连上,速度特别快。但是往后就服务器无响应断开连接。后来果断卸载了,装的libev版,参考链接。安装完后修改/etc/shadowsocks-libev/config.json 将其改为如下:
{
    "server":"yourip",
    "server_port":443,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"yourpasswd",
    "timeout":300,
    "method":"rc4-md5"
}
把yourip和yourpasswd改成自己的。
常用命令:
启动:service shadowsocks start
停止:service shadowsocks stop
重启:service shadowsocks restart
状态:service shadowsocks status  

二,IPSEC/StrongSwan的安装


参考链接使用通过:wget --no-check-certificate https://raw.githubusercontent.com/quericy/one-key-ikev2-vpn/master/one-key-ikev2.sh获得安装脚本,执行完毕后,ios使用ikev1会发现无论怎么连都是服务器无响应。请按照以下步骤排查问题(请保证手机使用数据网,而非wifi进行测试):
1,关闭防火墙:/etc/init.d/iptables stop
然后看ios能否连上,如果能连上那就说明是防火墙的问题。
2,接上,此时虽然连上但是访问不了网络,原因是没有转发。执行:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
然后service iptables restart使之生效。之后ios应该能正常连上并访问网络了。

补充:关于eth0,请输入ifconfig查看,个别电脑上不是eth0,而是eth1,eth3都有可能.
见下图:


如果符合1,2特征的话,那说明就是防火墙的问题。杂家也是非常奇怪,同样的脚本在搬瓦工上就是ok的,
但是在vultr上就死活连不上,经过仔细对比vultr的 /etc/sysconfig/iptables文件发现了这么一句:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
(这句话的上面是:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT,默认ssh是22端口登陆的,所以此处的作用很明显)
把这句话删掉就ok了,大爷的,就因为这句话浪费了我两天时间。改了之后记得service iptables restart使之生效。之后就ok了!

补充说明:
个别电脑上如果有-A FORWARD -j REJECT --reject-with icml-host-prohibited这句话的话,
也是要注释掉的.


如果需要开机自动启动的话,将/usr/local/sbin/ipsec start加入到/etc/rc.local 最后面就ok了。

三,服务器的TCP优化

1,为tcp修改拥塞算法

sysctl net.ipv4.tcp_available_congestion_control 查看当前拥塞算法:
net.ipv4.tcp_available_congestion_control = cubic reno
然后运行如下命令启动hybla:
/sbin/modprobe tcp_hybla
运行lsmod |grep hybla查看hybla是否正常运行。
修改/etc/sysctl.conf在后面加入:
net.ipv4.tcp_congestion_control=hybla
修改后执行:sysctl -p 使修改生效。
为了让开机自动运行还需如下步骤:
在/etc/sysconfig/modules目录下添加一个hybla.modules文件,并且写入以下内容:
#!/bin/sh
/sbin/modprobe tcp_hybla
然后设置下可执行属性,以便于系统在开机时自动执行:
chmod +x hyla.modules

2,调整内核参数,参考链接


链接里的第一步修改内核,及改的那两个参数,本文未采用。原因是我自用的vps,不存在大量并发问题。修改/etc/sysctl.conf,在后面加入:
fs.file-max = 51200
#net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_mtu_probing=1
备注:因为net.ipv4.tcp_syncookies系统默认为1了,所以我将其注释掉了。修改后执行:sysctl -p 使修改生效。

3,安装net-speeder

锐速效果好是好,但是现在已经全面禁止了,所以就不折腾了。考虑到实际网络丢包还是存在的,安装net-speeder还是很有必要的。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install libnet libpcap libnet-devel libpcap-devel

wget http://net-speeder.googlecode.com/files/net_speeder-v0.1.tar.gz

tar xzf net_speeder-v0.1.tar.gz

cd net_speeder*

sh build.sh

./net_speeder eth0 "ip"
之后看到:
Device: eth0
Filter rule: ip
ethernet header len:[14](14:normal, 16:cooked)
init pcap
init linnet
也可以使用如下使之后台运行:
nohup ./net_speeder eth0 “ip” >/dev/null 2>&1 &
然后设置开机启动:
mkdir /usr/local/net_speeder/


cp net_speeder /usr/local/net_speeder/net_speeder


echo 'nohup /usr/local/net_speeder/net_speeder eth0 "ip" >/dev/null 2>&1 &' >> /etc/rc.local

如此,优化完毕!


附Vultr的推广链接,需要的vultr可以点击

http://www.vultr.com/?ref=6883272注册,

你我都能得优惠!

1 0
原创粉丝点击