方案:使用开源的SS5( Socks Server 5 )
官网:http://ss5.sourceforge.net/ (点击左侧的Software在右侧的Server处进入下载地址)
CentOs版本:CentOS 7.3.1611 x64

以下操作如果没有特别指明,均在root目录下(/root)

1、从官网下载源码

# wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

直接从官网下载压缩包到当前目录,我下载的是最新版。
你也可以在windows上下载后,使用FlashFxp上传至服务器。

2、配置编译环境及安装编译SS5依赖组件

# yum -y install gcc automake make
# yum -y install pam-devel openldap-devel cyrus-sasl-devel openssl-devel

3、解压、编译、安装

# tar xvf ss5-3.8.9-8.tar.gz
# cd ss5-3.8.9-8
# ./configure && make && make install

4、修改SS5配置文件

①修改认证方式 /etc/opt/ss5/ss5.conf,查找取消下面两行注释

auth    0.0.0.0/0               -              -
permit -        0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -

安装后这两行是注释的(当时弄的时候没注意,后面用客户端通过代理服务器连接测试时一直显示错误的认证方式,找了好久)。
默认的是:无用户认证。
如果想要使用 username/password 用户认证方法,需要将上面两行修改成下面这样:

auth    0.0.0.0/0               -              u
permit u        0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -

②添加用户名及密码 /etc/opt/ss5/ss5.passwd,每行一个用户+密码(之间用空格)

test1 12345
test2 56789

③修改ss5启动的参数,自定义代理端口 /etc/sysconfig/ss5(如果不设置,默认是1080)
此文件ss5启动时会主动加载,将

#SS5_OPTS=” -u root”

取消注释,修改成下面这样

SS5_OPTS=" -u root -b 0.0.0.0:10808"

④给bash文件增加可执行权限 /etc/rc.d/init.d/ss5

# chmod 755 /etc/rc.d/init.d/ss5

5、启动ss5

一定要在root用户目录下,执行

# /etc/rc.d/init.d/ss5 restart

也可以用

# service ss5 start

启动完成后,可以使用以下命令查看连接情况

# netstat -an | grep 10808

查看日志

more /var/log/ss5/ss5.log

6、关闭ss5

# /etc/rc.d/init.d/ss5 stop

也可以用

# service ss5 stop

7、将ss5加入开机自动启动(可选)

# chkconfig --add ss5
# chkconfig --level 345 ss5 on

8、至此,在centos下安装socks5代理服务器已完成,接下来开始配置客户端(以widows7为例)

9、如何测试服务器是否能访问某个网站

比如测试是否能访问百度

# wget https://www.baidu.com/

查看是否能下载百度的首页到本地

10、有哪些客户端代理软件

比较出名的有:

Shadowsocks
proxifier
sockscap

这些软件都可以全局代理,也可以设置局部代理。
使用方法大同小异,都先需要设置代理服务器的信息:
ip,端口,用户名及密码(如果需要认证的话)。
但是经过测试发现,这些本地socks5代理软件效果都不太好,访问网页基本都是超时或无法连接(也可能有些参数我没有使用对)

如果服务器采用的是windows系统,一种比较常用的搭配是CCProxy(ss5代理服务器)+proxifier(客户端)。

11、windows常用软件自带的sock5代理设置

测试发现采用软件自带的代理功能效果比较好

一般搭建ss5代理服务器最好使用用户认证的方式(用户名密码),但大多数客户端软件都没有此功能,比如ie浏览器、360安全浏览器、火狐浏览器等。所以如果想要使用这些软件设置sock5代理的话,ss5代理服务器需保持默认的无认证模式。

QQ和遨游浏览器支持用户认证

下面是一些常用软件的sock5代理设置方法:

windows系统自带的ie浏览器(我本机装的ie10,低版本的可能不支持)

设置-Internet选项-连接-局域网设置-代理服务器(勾选为LAN使用代理服务器)-高级-在套接字一栏中填写对应的代理服务器ip和端口确定(其它留白)。
勾选对本地地址不使用代理服务器(即对本地地址127.0.0.1、A段私有地址10.0.0.0-10.255.255.255、B段私有地址172.16.0.0-172.31.255.255、C段私有地址192.168.0.0–192.168.255.255不进行代理)

chrome浏览器

谷歌浏览器使用的系统的默认代理方式(即ie浏览器的代理设置)

360安全浏览器

工具-代理服务器(下面有3个选项,代理服务器设置、使用IE代理设置、不使用代理服务器,默认使用IE代理设置)-代理服务器设置,在弹出的窗口中的代理服务器列表编辑框中按如下格式填写:
ip:端口号@socks#名称

火狐浏览器

在地址栏中,输入 about:config ,按确认,修改里面的一项数值,将 network.proxy.socks_remote_dns改成true(在页面中双击即可)。然后,打开FireFox浏览器,选择菜单栏的“工具/选项…”。选择“高级/网络”,点设置,就可以在弹出的窗口中进行代理服务器的设置了,选中“手动配置代理”,然后在SOCKS主机上,填写相应的代理服务器地址和端口,SOCKS类型选择“SOCKS V5”。

遨游浏览器

在设置页面中,支持用户认证(可以选填用户名和密码)

QQ客户端

在登陆界面中点击设置三角按钮就可以进入网络设置界面,支持用户认证(可以选填用户名和密码)

备注

如果netstat看不到端口了,到makefile目录中make uninstall卸载再make install重装以下。


/etc/rc.d/init.d/ss5(shell脚本)

#!/bin/sh
#
# chkconfig:
# description: This script takes care of starting \
#              and stopping ss5
#

OS=`uname -s`
if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then

# Source function library.
 . /etc/rc.d/init.d/functions

# Source networking configuration.
 . /etc/sysconfig/network

# Check that networking is up.
 [ ${NETWORKING} = 

 [ -f /usr/sbin/ss5 ] || exit
fi

# Test custom variables
test -f /etc/sysconfig/ss5 && . /etc/sysconfig/ss5

# See how we were called.
case "$1" in
  start)
        # Start daemon.
        echo -n "Starting ss5... "
    if [ $OS = "Linux" ]; then
            daemon /usr/sbin/ss5 -t -u root -b ip:
            touch /var/lock/subsys/ss5
    else
      if [ $OS = "SunOS" ]; then
              /usr/sbin/ss5 -t
              touch /var/lock/subsys/ss5
      else
              /usr/local/sbin/ss5 -t
      fi
    fi
    echo "done"
        ;;
  stop)
        # Stop daemon.
        echo "Shutting down ss5... "
    if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
    killproc ss5
        rm -f /var/lock/subsys/ss5
    else
        killall ss5
    fi
        rm -f /var/run/ss5/ss5.pid
    echo "done"
        ;;
  reload)
        # Reload configuration
    if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
        echo -n "Reloading ss5... "
    killproc ss5 -
    else
        pkill -HUP ss5
    fi
    echo "done reload"
    ;;
  restart)
        # Restart daemon
        echo -n "Restarting ss5... "
    $ stop
    $ start
    ;;
  status)
    if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
      status ss5
    fi
    ;;
  *)
        echo "Usage: ss5 {start|stop|status|restart|reload}"
        exit
    ;;
esac

exit 
 

如果出现以下错误
Can’t create pid file /var/run/ss5/ss5.pid
Can’t unlink pid file /var/run/ss5/ss5.pid
需要先创建 /var/run/ss5 目录后再启动 ss5
好像每次重启电脑后会文件夹会被删除。


有时候访问谷歌时,会自动断开链接(会持续一段时间)
查看日志,显示以下错误
[ERRO] ReceivingDataReceivingData
: (Connection reset by peer).
百度了一下说,可能
客户端被关闭,或浏览器点了stop
服务器并发数超载,会主动断开一些链接。
没看代码,具体不太清除,不过发现
每次访问
http://www.google.com/就会出现(其它国外网站类似)
访问https://www.google.com/就正常

CentOS下配置SS5(SOCKS5)代理服务器的更多相关文章

  1. Centos下配置php环境

    Centos下配置php环境   目录[-] 环境: GD2 2 安装PHP 5.2.14(FastCGI模式) 1)编译安装PHP 5.2.14所需的支持库: 2)编译安装MySQL 5.5.3-m ...

  2. centos下配置gitosis服务器遇到的困难

    这篇博客主要讲的是在centos下配置gitosis遇到的问题. 背景:centos7.2 64 :gitosis2.0 1.困难1 1)产生的问题及原因.gitosis没有安装成功,没有出现fini ...

  3. CentOS下配置防火墙 配置nat转发服务

    CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机 ...

  4. CentOS下配置jdk

    CentOS下配置jdk 1.在jdk官网上下载最新版本的jdk 2.将jdk放到相应的位置,使用如下命令来解压. .0_181 /opt/data/ tar -zxf jdk-8u181-linux ...

  5. CentOS下配置iptables防火墙 linux NAT(iptables)配置

    CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/syscon ...

  6. CentOS下配置LVM和RAID

    1.CentOS配置LVM http://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html http://ww ...

  7. Windows下配置Squid反向代理服务器

    Squid是一款类Unix系统下非常流行的服务器软件,其最重要的功能就是在客户端和服务端之间建立缓存.因而Squid可以用作反向代理,部署多级缓存或者搭建CDN等,无论名称是什么,本质上都是一样的.目 ...

  8. CentOS下配置多个Tomcat同时运行 本篇文章来源于 Linux公社网站(www.linuxidc.com)

    原文地址:http://blog.csdn.net/tjcyjd/article/details/46553361 版权声明:本文为博主原创文章,未经博主允许不得转载. 同一服务器部署多个tomcat ...

  9. 转载:分布式文件系统 - FastDFS 在 CentOS 下配置安装部署(2)

    原文:http://blog.mayongfa.cn/193.html 一.安装 Nginx 和 fastdfs-nginx-module 安装 Nginx 请看:从零开始学 Java - CentO ...

随机推荐

  1. python3编写网络爬虫19-app爬取

    一.app爬取 前面都是介绍爬取Web网页的内容,随着移动互联网的发展,越来越多的企业并没有提供Web页面端的服务,而是直接开发了App,更多信息都是通过App展示的 App爬取相比Web端更加容易 ...

  2. Java-Socket实现文件的断点续传

    前段时间因为任务需要本人这个java渣渣开始研究如何用java实现简单的文件断点续传.所谓的文件断点续传,我的理解是文件在传输过程中因为某些原因程序停止运行文件终止传输,下一次重新传输文件的时候还能从 ...

  3. NGINX Load Balancing – TCP and UDP Load Balancer

    This chapter describes how to use NGINX Plus and open source NGINX to proxy and load balance TCP and ...

  4. MySQL高级知识系列目录

    MySQL高级知识(一)——基础 MySQL高级知识(二)——Join查询 MySQL高级知识(三)——索引 MySQL高级知识(四)——Explain MySQL高级知识(五)——索引分析 MySQ ...

  5. tushare 开源数据包的使用

    tushare 使用 python开源金融接口包: tushare.org/trading.html#d2 安装: pip install tushare import tushare as ts # ...

  6. Linux之命令进阶

    Linux系统的启动过程 1.开机自检 BIOS2.MBR引导3.GRUB菜单4.加载内核5.运行init进程6.从/etc/inittab读取运行级别7.根据/etc/rc.sysinit 初始化系 ...

  7. 数据库 schema含义

    数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的Schema,指的是数据库中的一个名字空间,它包含一组表.视图和存 ...

  8. Android自动登录功能的实现

    登陆页面布局设计: <LinearLayout android:layout_width="wrap_content" android:layout_height=" ...

  9. 实战Performance Monitor监测EnyimMemcached

    首先要将EnyimMemcached安装至Windows Performance Counters中. 将Enyim.Caching.dll复制到一个文件夹中 在命令行中进入.NET Framewor ...

  10. 网站建设部署与发布--笔记2-部署Apache

    网站部署(Linux) 部署Apache 操作系统:CentOS 7.2 1.首先连接云服务器,清楚系统垃圾. $ yum clean all Loaded plugins: fastestmirro ...