在服务器布置了 ss, request 使用代理不走本地代理服务器应该怎么写?

2019-03-10 15:07:02 +08:00
 XxxxD

看了 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 密码都没找到,搜了下好像只能添加密钥这样?

2087 次点击
所在节点    Python
41 条回复
XxxxD
2019-03-11 09:11:09 +08:00
@9527tech 谢谢,我就是不想走本地的,因为已经有个脚本走了本地了
XxxxD
2019-03-11 09:12:13 +08:00
@arischow 问题是代理都连不上,设环境变量是不是有点过早了
Juszoe
2019-03-11 09:14:50 +08:00
@XxxxD #19 这是最简便的办法,想脚本直接走的话只能把 ss 的 python api 拉过来,写在代码里面,我看你 14 楼说的,其实 ss 客户端本地端口可以允许多个连接的
XxxxD
2019-03-11 09:39:37 +08:00
@Juszoe 你好,你说的的多个连接是切换到另外一个代理么? 但是实际上我是不知了两个服务器的代理,一个本地走着,还有一个想脚本直接连,你说的是怎么多个连接呢?
yzc27
2019-03-11 09:50:52 +08:00
遠程服務器架完 ss 服務端,再同時在台服務器架個 ss 客戶端,並對公網開個 socks 代理端口(似乎無密碼驗證),你自己電腦 requests 連那個端口就好啦(純拍腦袋想出來,沒驗證過)
Juszoe
2019-03-11 09:52:47 +08:00
@XxxxD #24 我略微有些混乱了,方便的话麻烦画个图,描述一下几台服务器(机器),分别部署了什么
XxxxD
2019-03-11 10:06:36 +08:00
@ik 谢谢,我试了下, 的确是代理的问题,我用本地代理访问 httpbin.org/ip 显示的是代理的 ip, 奇怪的是我在 google cloud vm 实例布置的 ss 没显示啥问题啊,google could vm 还需要另外设置啥么, 我防火墙 http/https 也都开的啊
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'
}
zephyru
2019-03-11 11:30:27 +08:00
歪个楼...我上次在阿里云上暴露不加验证的 SS 端口后被封了...
涉嫌提供访问境外非法信息的途径...
一路看下来..感觉有点乱..不太清楚为啥不通过客户端连接而是直接用 requests 连...
XxxxD
2019-03-11 11:58:32 +08:00
@zephyru 因为我想自己弄多个代理 ip 弄爬虫,本地已经走了一个了
XxxxD
2019-03-11 11:59:37 +08:00
@rocketman13 谢谢,有安装下载,就是这样使用,ss 是没有用户的,我使用 root:ssPassword@host:port 无解,难道 user:pass 是服务器的?
XxxxD
2019-03-11 12:01:00 +08:00
@Juszoe 就是两个服务器,我都部署了 ss, 然后一台电脑,本地客户端走了一个,我想脚本直接走另外一个代理,不走本地端口这样,就是奇怪那种用来卖的 ip 是咋布置的
RainyH2O
2019-03-11 13:28:18 +08:00
你是打算自己实现一个 ss 客户端,自己实现 ss 的加密?
ss 是 cs 架构的软件,不走 client 的话你得自己写 client 的逻辑
那么问题来了你干嘛不用已经写好的 sslocal ?
ss!=socks proxy
radc
2019-03-11 13:48:32 +08:00
socks 是 sslocal 暴露出来的那个端口,ssserver 提供的端口是供 sslocal 来传送加密数据的啊,那个不是 socks...
所以想在 requests 里用 socks 代理,必须起一个 sslocal
XxxxD
2019-03-11 13:49:16 +08:00
@RainyH2O orz, 好的,谢谢,一语惊醒梦中人,我就是爬虫需要多个 ip, 买了几个之后感觉又贵又不怎么稳,然后就打起了服务器自建代理的主意,我得再研究研究怎么服务器自建代理
XxxxD
2019-03-11 13:51:43 +08:00
@radc
好的,谢谢,楼上已经把我拍醒了,我应该研究如何服务器自建代理而不是让 ss 变成脚本可用代理。
话说,妹纸头像好亲切。
orz
XxxxD
2019-03-11 13:52:27 +08:00
@0yster 童鞋,看#33 楼和#34 楼,ss 不等于可用 socks 代理,得换个路
zephyru
2019-03-11 14:21:36 +08:00
实际上 sslocal 暴露出来的端口的确可以用 requests 连但是没法直接加认证...
如果用的国内的云最好不要直接暴露....
看你的需求..如果只有两个,本地起两个客户端分别代到不同的端口上不就好了...
只是感觉这么弄又笨又麻烦..
话说只是想用服务器做代理转发似乎也不是一定要用 ss 来做吧...如果这块有找到好用的东西能顺便告诉我一下就好了..
anxudong
2019-05-13 01:25:48 +08:00
您好,我也遇到了这个问题,应该怎么写呢
anxudong
2019-05-13 01:27:18 +08:00
用户名默认是 root?配置文件中只有密码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543010

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX