Centos 7 安装socks5代理
这次安装socks5 proxy大致分为3个步骤
» 配置环境
» 安装socks5
» 配置防火墙
» 配置Fail2ban
» 配置环境
步骤 1 » 配置环境。
# yum install epel-release
# yum groupinstall ‘Development Tools’
# yum install gcc automake autoconf libtool make pam-devel yum-utils openldap-devel openssl-devel
» 安装socks5
步骤 1 » 下载最新的socks5。
socks5官网在http://ss5.sourceforge.net/
socks5好像很久都没有更新了,最新版是13年的ss5-3.8.9-8,https://sourceforge.net/projects/ss5/files/ss5/
# mkdir /tmp/ss5
# cd /tmp/ss5
# wget http://sourceforge.net/projects/ss5/files/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
# tar -zxf ss5-3.8.9-8.tar.gz
# cd ss5-3.8.9
# ./configure
# make
# make install
没有错误的话,就是安装成功了,基本上秒装。
步骤 2 » 配置socks5。
配置文件默认在/etc/opt/ss5/
Log文件默认在/var/log/ss5
启动配置默认在/etc/sysconfig/ss5
启动脚本默认在/etc/init.d/ss5
首先我们修改/etc/opt/ss5/ss5.conf
主要是改动两行,意思是用户名密码验证,允许所有网络来连接。
auth 0.0.0.0/0 – u
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – –
用户名密码在/etc/opt/ss5/ss5.passwd
逐行添加用户名密码就好,格式如下
username1 password1
username2 password2
然后给这个文件减一下权限,为了安全
# chown root:root /etc/opt/ss5/ss5.passwd
# chmod 750 /etc/opt/ss5/ss5.passwd
然后修改一下启动参数/etc/sysconfig/ss5,这里可以指定启动的用户权限和端口
SS5_OPTS=” -u root -b 0.0.0.0:1080″
最后给启动脚本赋权/etc/init.d/ss5
# chmod a+x /etc/init.d/ss5
步骤 3 » 启动socks5。
# systemctl restart ss5
# systemctl enable ss5
步骤 4 » 测试。
查看是否运行成功
# netstat -anp | grep ss5
» 配置防火墙
步骤 1 » firewall-cmd配置。
这个简单了,允许1080端口的tcp和udp连接就行。
# firewall-cmd –zone=public –add-port=1080/tcp –permanent
# firewall-cmd –zone=public –add-port=1080/udp –permanent
# firewall-cmd –reload
» 配置fail2ban
步骤 1 » 新建filter。
在/etc/fail2ban/filter.d下面新建文件socks5.conf,填入我写的filter。也许不太完美,但是可用。
[Definition] failregex = ^\[.*\] <HOST> .*\(((Authentication failed)|(Socks method unknown or bad request))\).*$ ignoreregex =
步骤 2 » 启用socks5的filter。
在/etc/fail2ban/jail.local最后一行后面,新起一行加入
[socks5] enabled = true port = 1080 filter = socks5 maxretry = 5 logpath = /var/log/ss5/ss5.log bantime = 3600 findtime = 60
步骤 3 » 重启fail2ban。
# systemctrl restart fail2ban
好了,至此我们的配置完成,可以在其他机器上测试了。
Chrome不支持socks5的用户名密码验证,火狐推荐插件Proxy Toggle
linux命令行测试可用curl –socks5 destination_ip:1080 –proxy-user user:password http://ipinfo.io/ip,如果返回ip是代理服务器的ip则测试通过。