今天记录下使用阿里云的ces centos的linux系统搭建一个socks5代理(用户功能暂时还没有实现,如果有会的可以指点指点哈)

一、配置:

需要一台linux云服务器(我的是浙江的),CentOS 7.2 64位
我使用本地的windows系统操作的,下载一个putty即可链接。
*(先说下哈,我第一次使用的是centos 8的版本64位,结果参考了无数的文章,就是使用make报错,改为7.2的centos版本就测试成功了,但是弄账号和密码的时候,怎么弄就不成功,搞了一上午了,就先放置吧,反正自己改下默认的端口号也是可以使用的。强烈建议换成centos7的,其他的想研究自己可以研究研究也可以,如果有大佬懂这个的也可以把自己成功的博客让我参考参考哈)
设置用户的问题已经解决了哈

二、搭建步骤:

找到的一些资料:
链接:
http://sourceforge.net/projects/ss5/files/
http://ss5.sourceforge.net/
官方实例
http://ss5.sourceforge.net/examples.htm

1、通过yum安装ss5 依赖包

yum install gcc openldap-devel pam-devel openssl-devel

2、安装ss5

①、首先下载ss5

# 这个是一个日本大学的sourceforge镜像
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

也可以使用这个下载:

wget http://downloads.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

②、解压安装:

# 解压,"ss5-3.8.9-8.tar.gz"是刚才下载的压缩包
# -v过程显示文件 -z解压/压缩gzip -x解压操作 -f 后面加要操作的文件
tar -vzx -f ss5-3.8.9-8.tar.gz

在这里插入图片描述
然后进入:
ss5-3.8.9目录:

cd ss5-3.8.9/

运行’./configure’

# configure是一个shell脚本
# 主要的作用是对即将安装的程序进行配置,
# 检查当前的环境是否满足要安装程序的依赖关系.
# 如果系统环境合适,就会生成makefile,否则会报错。
./configure

下面这个就是配置成功。我当时centos8的时候,这个和后面的make、make install都报错。
在这里插入图片描述

在这里插入图片描述

然后make && make install,也可以一个一个执行

# make是一个命令工具
# 解释 Makefile 中的规则。
# Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
# 实际上make是执行Makefile中的第一条命令
make
# 执行Makefile中的install
# 这些都可以在Makefile文件中看到
# 可以使用vim Makefile查看文件
make install

3、启动:

service ss5 start

如果报错/etc/init.d/ss5被拒绝
在这里插入图片描述
修改一下文件权限即可:

# a+x 给所有人加上可执行权限(所有者,所属组,其他)
chmod a+x /etc/init.d/ss5

然后再启动就可以了。

4、修改配置:

把文件中下面俩行的注销#号取消即可(俩行不在一起)。

#auth    0.0.0.0/0               -               -


#permit -       0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -

vi /etc/opt/ss5/ss5.conf

在这里插入图片描述

在这里插入图片描述

然后保存退出即可:

5、修改端口号(默认1080,但是容易被人家扫描盗用)

vi /etc/sysconfig/ss5

默认情况下只有俩个注解行,可以使用-b加上后面的16666就是设置的端口号。保持使用即可。

在这里插入图片描述

6、重启ss5服务:

service ss5 restart

在这里插入图片描述

7、我在谷歌浏览器中使用代理:

使用插件:SwitchyOmega

设置代理:
在这里插入图片描述

百度搜索ip

8、python代码中的使用代理测试:

import json
import requests


def demo_ip():
    url = "https://ai.taobao.com/" 
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'
    }

    ip_one = '47.111.229.49:16666'
    proxies = {
        # "http": "socks5://zhao:zhao2020@" + ip_one,
        # "https": "socks5://zhao:zhao2020@" + ip_one,
        "http": "socks5://" + ip_one,
        "https": "socks5://" + ip_one,
    }
    try:
        resp = requests.get(url=url, headers=headers, proxies=proxies, timeout=2)
        print(resp.status_code)
        print(resp.text)
        print(resp.cookies)
    except:
        print('异常')
        pass
    else:
        pass


if __name__ == '__main__':
    demo_ip()

使用代理成功。

三、经过不懈的努力,总算找到了设定用户和密码的方法:

当然,你看到我的时候,肯定我的代理不能用了(博文只提供步骤哈,密码端口号我肯定改滴),比较我是去年双十一时买的小服务器,经不起经不起,想弄的话自己弄台服务器玩玩。

在这里插入图片描述
原来我之前尝试的方法是对的,我使用python代码测试是可以的,是因为我这个插件不支持socks5的账号和密码的验证,直接代理+端口号的,以后就知道了。

下面直接进入主题,设置账号密码的步骤:

1、修改配置文件:

第一次我们不设置用户名和密码的时候,只是把俩句注销的地方取消注销,这次只是修改俩行的一个常熟,把对应得-换成u

vi /etc/opt/ss5/ss5.conf

#auth    0.0.0.0/0               -               -
auth    0.0.0.0/0               -               u

#auth    0.0.0.0/0               -               -
auth    0.0.0.0/0               -               u

就是上面来个地方进行了小修改,第一次修改这个配置文件的时候。
在这里插入图片描述
在这里插入图片描述

2、添加账号和密码:

vi /etc/opt/ss5/ss5.passwd

添加格式:用户名 密码(中间为空格)

zhao zhao

在这里插入图片描述

3、重启ss5即可:

service ss5 restart

在这里插入图片描述

4、使用python代码测试:

为更好的测试代理,这次我使用httpbin网站测试:

import json
import requests


def demo_ip():
    url = "http://httpbin.org/ip"  # 如果返回的ip里面有本机ip,则证明不是匿名代理
    # url = "http://httpbin.org/get?show_env=1"  # "X-Real-Ip"对应的value如果是你的本机ip,则不是匿名代理
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'
    }
    ip_one = '47.111.229.49:16666'
    proxies = {
        "http": "socks5://zhao:zhao@" + ip_one,
        "https": "socks5://zhao:zhao@" + ip_one,
        # "http": "socks5://" + ip_one,
        # "https": "socks5://" + ip_one,
    }
    try:
        resp = requests.get(url=url, headers=headers, proxies=proxies, timeout=2)
        # resp = requests.get(url=url, headers=headers, timeout=2)
        print(resp.text)
        ip_str = json.loads(resp.text)["origin"]
        print("ip_str", ip_str)
    except:
        print('异常')
        pass
    else:
        pass


if __name__ == '__main__':
    demo_ip()

在这里插入图片描述

这个是我跑的结果,记得把带来中的代理改为你自己的,我的肯定不能用了。

发布了197 篇原创文章 · 获赞 105 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_42081389/article/details/105451353