
看了 requests 的文档,http 和 socks, ss 应该属于 socks
proxies = { 'http': 'socks5://user:pass@host:port', 'https': 'socks5://user:pass@host:port' } user 我用的 root:用的 ss 的密码 @host:port 失败 请教下应该怎么写,另外用的 google cloud VM 实例, 我竟然连 ssh 密码都没找到,搜了下好像只能添加密钥这样?
1 0yster 2019-03-10 19:38:39 +08:00 via iPhone 同遇过这个问题,网上说最新的 requests 支持 socks5。但是我实测有问题,希望楼主解决了可以贴一下。 |
2 Juszoe 2019-03-10 20:18:36 +08:00 ss 应该只是用了 sock5,不代表用 sock5 能直接连上,还有一层 ss 协议(看了 ss 的描述,不是很肯定) 可以服务器开个 sslocal 连上 ss,requests 连上 sock5://localhost:[sslocal 端口] |
3 arischow 2019-03-10 20:27:20 +08:00 via iPhone 我记得是设环境变量 HTTP_PROXY |
4 ThirdFlame 2019-03-10 20:45:39 +08:00 尤其 ss 客户端 生成的代理端口 也是 http 的。 这个用 v2ray 来接入 $$ ,是可以生成 http 代理的。 |
5 qf0129 2019-03-10 20:50:34 +08:00 via iPhone 用 proxychains 试下 |
6 pengwen 2019-03-10 22:03:26 +08:00 via Android 你的 requests 不支持吧,试试这个 pip install -U requests[socks] |
7 Acebiu 2019-03-10 22:05:23 +08:00 想将 socks 转成 http 的话,你需要 polipo。 |
8 wweir 2019-03-10 22:19:09 +08:00 上 sower,智能全局代理,自动检测被屏蔽的站点,专业解决规则的烦恼 github.com/wweir/sower |
9 Trim21 2019-03-10 22:24:53 +08:00 via Android 你不应该直接把 requests 当作一个 ss 客户端用,应该在本地开一个 ss 客户端连上服务器,然后用本地 ss 客户端暴露的那个代理地址。 |
10 lovestudykid 2019-03-10 22:25:57 +08:00 via iPhone ....这个问题难道不是开出来的代理端口并没有用户密码你不应该写吗?并且 socks5 和 http 都有提供的,并且端口相同 |
11 Yourshell 2019-03-10 23:25:02 +08:00 via iPhone 直接用 socks 的话那你 ss 客户端用来干嘛 |
15 XxxxD OP @lovestudykid 谢谢,不设定用户名和密码我 http 和 socks5 都试过,连不了 |
17 9527tech 2019-03-11 08:48:13 +08:00 via iPhone proxies = { 'http': 'socks5://127.0.0.1:1080' 'https': 'socks5://127.0.0.1:1080' } 这样应该就行 |
18 ik 2019-03-11 09:03:45 +08:00 via iPhone curl --socks xxx 先试试? |
23 Juszoe 2019-03-11 09:14:50 +08:00 @XxxxD #19 这是最简便的办法,想脚本直接走的话只能把 ss 的 python api 拉过来,写在代码里面,我看你 14 楼说的,其实 ss 客户端本地端口可以允许多个连接的 |
24 XxxxD OP @Juszoe 你好,你说的的多个连接是切换到另外一个代理么? 但是实际上我是不知了两个服务器的代理,一个本地走着,还有一个想脚本直接连,你说的是怎么多个连接呢? |
25 yzc27 2019-03-11 09:50:52 +08:00 via iPhone 程服器架完 ss 服端,再同在台服器架 ss 客端,公 socks 代理端口(似乎密),你自己 requests 那端口就好啦(拍袋想出,) |
27 XxxxD OP @ik 谢谢,我试了下, 的确是代理的问题,我用本地代理访问 httpbin.org/ip 显示的是代理的 ip, 奇怪的是我在 google cloud vm 实例布置的 ss 没显示啥问题啊,google could vm 还需要另外设置啥么, 我防火墙 http/https 也都开的啊 |
28 rocketman13 2019-03-11 11:03:48 +08:00 除了基本的 HTTP 代理,Request 还支持 SOCKS 协议的代理。这是一个可选功能,若要使用, 你需要安装第三方库。 你可以用 pip 获取依赖: $ pip install requests[socks] 安装好依赖以后,使用 SOCKS 代理和使用 HTTP 代理一样简单: proxies = { 'http': 'socks5://user:pass@host:port', 'https': 'socks5://user:pass@host:port' } |
29 zephyru 2019-03-11 11:30:27 +08:00 歪个楼...我上次在阿里云上暴露不加验证的 SS 端口后被封了... 涉嫌提供访问境外非法信息的途径... 一路看下来..感觉有点乱..不太清楚为啥不通过客户端连接而是直接用 requests 连... |
31 XxxxD OP @rocketman13 谢谢,有安装下载,就是这样使用,ss 是没有用户的,我使用 root:ssPassword@host:port 无解,难道 user:pass 是服务器的? |
32 XxxxD OP @Juszoe 就是两个服务器,我都部署了 ss, 然后一台电脑,本地客户端走了一个,我想脚本直接走另外一个代理,不走本地端口这样,就是奇怪那种用来卖的 ip 是咋布置的 |
33 RainyH2O 2019-03-11 13:28:18 +08:00 你是打算自己实现一个 ss 客户端,自己实现 ss 的加密? ss 是 cs 架构的软件,不走 client 的话你得自己写 client 的逻辑 那么问题来了你干嘛不用已经写好的 sslocal ? ss!=socks proxy |
34 radc 2019-03-11 13:48:32 +08:00 socks 是 sslocal 暴露出来的那个端口,ssserver 提供的端口是供 sslocal 来传送加密数据的啊,那个不是 socks... 所以想在 requests 里用 socks 代理,必须起一个 sslocal |
35 XxxxD OP @RainyH2O orz, 好的,谢谢,一语惊醒梦中人,我就是爬虫需要多个 ip, 买了几个之后感觉又贵又不怎么稳,然后就打起了服务器自建代理的主意,我得再研究研究怎么服务器自建代理 |
36 XxxxD OP |
38 zephyru 2019-03-11 14:21:36 +08:00 实际上 sslocal 暴露出来的端口的确可以用 requests 连但是没法直接加认证... 如果用的国内的云最好不要直接暴露.... 看你的需求..如果只有两个,本地起两个客户端分别代到不同的端口上不就好了... 只是感觉这么弄又笨又麻烦.. 话说只是想用服务器做代理转发似乎也不是一定要用 ss 来做吧...如果这块有找到好用的东西能顺便告诉我一下就好了.. |
39 anxudong 2019-05-13 01:25:48 +08:00 您好,我也遇到了这个问题,应该怎么写呢 |
40 anxudong 2019-05-13 01:27:18 +08:00 用户名默认是 root?配置文件中只有密码 |