ss 公共代理的必要设置(转)

转: https://gist.github.com/fqrouter/95c037f9a3ba196fd4dd

本文只关注于确保ss服务还“活着”,如果你希望让其跑得更快,请参考
https://github.com/clowwindy/shadowsocks/wiki/Optimizing-Shadowsocks

1、 ss的timeout设置
超时时间越长,连接被保持得也就越长,导致并发的tcp的连接数也就越多。对于公共代理,这个值应该调整得小一些。推荐60秒。

2、 检查操作系统的各种限制
对于openvz的vps,特别需要检查一下
shell# cat /proc/user_beancounters
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
     1005:  kmemsize                  6499239             34332672             50331648             50331648                    0
            lockedpages                     0                    0                12288                12288                    0
            privvmpages                 20185                89959  9223372036854775807  9223372036854775807                    0
            shmpages                      654                  670  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numproc                        26                  102  9223372036854775807  9223372036854775807                    0
            physpages                   12181                24887                    0                24576                  536
            vmguarpages                     0                    0  9223372036854775807  9223372036854775807                    0
            oomguarpages                 7054                30538  9223372036854775807  9223372036854775807                  473
            numtcpsock                     52                 1500                 1500                 2000             21583239
            numflock                        1                    5  9223372036854775807  9223372036854775807                    0
            numpty                          1                   16  9223372036854775807  9223372036854775807                    0
            numsiginfo                      0                   63  9223372036854775807  9223372036854775807                    0
            tcpsndbuf                 7497680             29165536            104857600            209715200                    0
            tcprcvbuf                18891984             88633288            104857600            209715200                    0
            othersockbuf                39304               386848  9223372036854775807  9223372036854775807                    0
            dgramrcvbuf                     0               166480  9223372036854775807  9223372036854775807                    0
            numothersock                   27                   37                 1500                 2000                    0
            dcachesize                2293779             25165824             25165824             25165824                    0
            numfile                       362                 1910  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numiptent                      30                   30  9223372036854775807  9223372036854775807                    0
其中 numtcpsock 表示 tcp 连接数。像上面这样的情况,就不适合用于公共代理,因为vps商限制了并发的tcp连接数。
shell# ulimit -n
1024
这个命令检查默认的一个进程可以打开的文件数。1024这个默认值是不够的。推荐设置为8000
shell# ulimit -n 8000
shell# ss-server -s 0.0.0.0 -p 1080 -k xxxx -m rc4
上面启动ss-server的命令只是示意性的,请替换成你自己的启动命令。ulimit的设置是一次性的,每次启动ss-server之前都要设置一下。

3、 防止vps被用于暴力破解ssh密码等非法行为
只要ss被公开出去,肯定会有人拿代理用于暴力破解ssh的密码。
推荐你把ss限制为只允许访问443和80两个端口。如果你不添加这样的限制,
很多vps商都会因为ssh连接开得太多而暂停对你的服务。
shell# adduser http-ss
shell# su http-ss -c "ss-server -s 0.0.0.0 -p 1080 -k xxxx -m rc4"
让ss-server以特定的用户启动
shell# iptables -t filter -A OUTPUT -d 127.0.0.1 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner http-ss -A OUTPUT -p tcp --sport 1080 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner http-ss -A OUTPUT -p tcp --dport 80 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner http-ss -A OUTPUT -p tcp --dport 443 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner http-ss -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
对于http-ss用户,限制其不能访问80,443之外的端口

4、 防止DMCA Compliant
虽然你已经把shadowsocks限制为只能访问80/443端口,但是对于美国的vps,仍然有额外的一点需要注意。
因为美国的vps需要遵从美国的DMCA版权法律,如果该vps被用于bt下载,而且正好遇上了电影公司设置的蜜罐的话,
你的vps的ip就会被记录下来。然后DMCA Compliant律师函会被送往你的vps商那,然后就会被停止服务。
为了避免shadowsocks帐号被用于bt下载,你不得不对80端口的流量再进一步进行限制
shell# apt-get update && apt-get install -y nginx
安装nginx
server {
    listen 127.0.0.1:3128;
    server_name localhost;
    resolver 8.8.8.8;
    location / {
        set $upstream_host $host;
	if ($request_uri ~ "^/announce.*") {
            return 403;
        }
        if ($request_uri ~ "^.*torrent.*") {
            return 403;
        }
        proxy_set_header Host $upstream_host;
        proxy_pass http://$upstream_host;
        proxy_buffers 8 32k;
        proxy_buffering off;
   }
}
然后配置nginx的server
shell# iptables -t nat -m owner --uid-owner http-ss -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3128
把所有的80端口流量转到nginx来处理
时间: 2024-11-05 13:48:20

ss 公共代理的必要设置(转)的相关文章

IE代理文件自动设置

想如果代理可用就使用代理,代理不可用就直接连接网络. 新建文件放入javascript代码,保存为proxy.pac,保存路径c:\proxy.pac function FindProxyForURL(url, host) { return "PROXY 127.0.0.1:8888"; } 代码意思是尝试用代理访问网络,不能访问就直接访问网络 打开IE浏览器 Internet选项  ->连接->自动脚本设置勾上 并填写  file://c:/proxy.pac 保存,重启

【Nginx】nginx 代理 Haproxy 怎么设置?

由于Haproxy是通过 url 正则匹配 识别 的,nginx代理到 haproxy需要设置 proxy_set_header Host 为 haproxy的目标 url 直接上配置 upstream rcm01_api_haproxy { server nscloud.rcm01.api.nsfocus.com; } server { listen 80; server_name nscloud.api.nsfocus.com; location / { proxy_pass http://

如何在exchange 2013 的OWA界面进行公共或私有计算机设置

我们知道exchange 2013的OWA界面相比Exchange 2010发生了很大的改变,其中就有客户提出的这样的问题,在exchange 2010 的OWA登录界面,我们可以选择使用公用计算机还是私人计算机(公共计算机选项超时时间为:15分钟,私有计算机选项超时时间为:8小时),但是在Exchange 2013中这个选项没有了,我在Exchange 2013 OWA中还想用,怎么办? Exchange 2010 OWA登录界面: Exchange 2013 OWA登录界面: 其实很简单,此

EF中多表公共字段,以及设置EntityBase使所有实体类继承自定义类

使用EF框架访问数据库时,如果某些表具有公共字段,例如在审核流程中,对于各类申请单资料的创建人.创建时间.修改人.修改时间,这些可能多表都需要的字段,如果在每个实体中进行赋值操作显然是类似和重复的,下面是一个统一在数据提交时进行赋值的例子(经简化,如果只是为记录时间并不用这么做),记录如下: 1. 创建一个公用接口IAudited,包含公用字段,申请单实体类继承这个接口. 2. 定义一个抽象类DbEntity(用dbml文件的EntityBase属性,使数据库实体类都继承自此类),定义OnSav

Shadowsocks停止工作(SS)代理

Shadowsocks停止工作 Shadowsocks(SS)是用C#编写的,必须要安装.NET的V4.6.2或以上才行(V4.0不可以) 官方说明:使用VS2015 & .NET 4.6.2开发. https://github.com/shadowsocks/shadowsocks-windows

Nginx反向代理转发Host设置

默认情况下反向代理是不会转发请求中的Host头部,如果需要转发,则需要配置红色字体表示的选项参数. location /t02 { proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.3.15:9401/t02; }

快鸟SS iPad/iPhone下载和设置SS客户端教程

苹果应用商店搜索 “wingy”. AppStore安装链接为:https://itunes.apple.com/cn/app/wingy-mian-fei-banvpn-ke-hu/id1148026741?mt=8 安装应用后,选择添加线路,分别填入服务器,端口,密码,选择对应的加密方式,保存后连接即可. ————————–分割线————————– 快鸟VPN QQ群:523196276  (新建群) 快鸟VPN 免费版公共账号密码每天更新一次,VIP套餐一个月10元,半年50,包年100.

mysql数据库服务器代理mycat简单设置

Mycat是一个开源的分布式数据库系统,不同于oracle和mysql,Mycat并没有存储引擎,但是Mycat实现了mysql协议,前段用户可以把它当做一个Proxy.其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端mysql存储引擎里面.最新版本的Mycat不仅支持mysql,还可以支持MS SqlServer,Oracle,DB2等关系型数据库,而且还支持MongoDB这种NoSQL.Mycat对调用者屏蔽了后端存储具体实现. DB Prooxy 数据库中间件 功能主要有

V2EX 上收藏Top200

截止到目前 V2EX 上收藏人数最多的 56 个帖子 收藏数 Top200 截止到目前V2EX上收藏人数最多的56个帖子 说说自己知道的各个领域水平比较不错的论坛 发一个自用了一年多的加密代理工具 shadowsocks 我的FQ路由完全手册 玩 Python 之必装组件 程序员如何自食其力,肉身FQ? [讨论] 除了 V2EX,你们还常逛那些网站呢? 硬盘女神 推荐我们在 Github 上已经被 star 了过千次的简历模板和在线 MarkDown 简历工具给大家 每个人都来推荐一款棒的mac