shadowsocks 优化设置

其实 shadowsocks 配置也弄了蛮久的了,但是总是感觉速度不够快…于是想起来优化下TCP试试,没想到真的有用,原来最大只能达到 2500Kbps 现在可以满带宽了…

首先新建 /etc/sysctl.d/local.conf 在里面输入以下内容

#
# /etc/sysctl.d/local.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additonal system variables
#
 
#kernel.domainname = example.com
 
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
 
##############################################################3
# Functions previously found in netbase
#
 
# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
 
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
 
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
 
# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
 
 
###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
 
# This line below add by user.
 
# 设定最大打开文件句柄数为 200000
fs.file-max = 200000
 
# 设定最大数据接收发送缓冲为 32MB 。
net.core.rmem_max = 33554432 
net.core.wmem_max = 33554432 
 
# 设定默认据接收发送缓冲为 256KB 。
net.core.rmem_default = 262144
net.core.wmem_default = 262144
 
# 将最大队列长度设定为 65535 。
net.core.netdev_max_backlog = 65535
 
# 将监听队列长度增加到 4096 。
net.core.somaxconn = 4096
 
# 设定 TCP 接收发送缓存最小、平均和最大分别为 32KB 、 256KB 、 32MB 。
net.ipv4.tcp_rmem = 32768 262144 33554432
net.ipv4.tcp_wmem = 32768 262144 33554432
 
# 自动检测网络是否支持巨帧包,如果已知支持请设定为 2 ;自动检测为 1 ;不支持请设定为为 0 。
net.ipv4.tcp_mtu_probing = 1
 
# 使用 hybla 拥塞控制算法。
# 请注意:请使用 sysctl net.ipv4.tcp_available_congestion_control 命令检查是否支持 hybla 拥塞控制算法。
# 若未出现在列表中,请使用 modprobe tcp_hybla 命令加载该模块。
# 若加载失败,说明可能需要将该模块 ( CONFIG_TCP_CONG_HYBLA=y ) 加入内核源码并重新编译。
net.ipv4.tcp_congestion_control = hybla
 
# 表示开启 SYN Cookies。当出现 SYN 等待队列溢出时,启用 cookies 来处理,可防范少量 SYN 攻击,默认为 0,表示关闭。
net.ipv4.tcp_syncookies = 1
 
# 表示开启重用。允许将 TIME-WAIT sockets 重新用于新的 TCP 连接,默认为 0,表示关闭。
net.ipv4.tcp_tw_reuse = 1
 
# 此功能和处于 NAT 环境下的 Android 系统冲突,必须禁用。
net.ipv4.tcp_tw_recycle = 0
 
# 修改系統默认的 TIMEOUT 时间。
net.ipv4.tcp_fin_timeout = 30
 
# 表示当 keepalive 启用的时候,TCP 发送 keepalive 消息的频度。缺省是 2 小时,改为 20 分钟。
net.ipv4.tcp_keepalive_time = 1200
 
# 表示 SYN 队列的长度,默认为 1024,加大队列长度为 8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 8192

最后将以下代码加入rc.local中即可

/sbin/modprobe tcp_hybla
ulimit -n 51200

然后重启后就大功告成了…

您可能还喜欢...

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据