帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
SSH隧道动态转发端口实现SOCKS代理 + HTTP代理(Privoxy)
发布时间:2024-03-09 15:56:49   分类:帮助文档
SSH隧道动态转发端口实现SOCKS代理 + HTTP代理(Privoxy)

一、文章概要
实现效果:ssh连接远程服务器进行网络转发,本地服务连接网络代理环境:windows11/10需要工具:MobaXterm(ssh隧道端口转发),Privoxy(socks转http代理),一个云服务器
 二、步骤
1. 用SSH从本地计算机连接远程主机
多种方法选一种即可: 
命令行:ssh -C -N -D LOCAL_ADDRESS:LOCAL_PORT USER@REMOTE_ADDRESSPutty客户端MobaXteam中的MobaSSHTunnel




MobaSSHTunnel



2. Privoxy安装和配置
1. 官网下载压缩包版本 http://www.privoxy.org/
2. 修改配置文件:
通过listen-address指定HTTP代理的监听地址和端口。默认privoxy的配置文件会带有这一项。
其格式为:listen-address  [ADDRESS]:[PORT] 
默认值是:listen-address  127.0.0.1:8118
通过forward-socks5指定转发到socks代理
默认privoxy的配置文件不会配置这一项。
forward-socks5支持的格式比较复杂,但是这里只需要简单的写成如下内容就可以了:
forward-socks5 / [SOCKS_ADDRESS]:[SOCKS_PORT] .
其中“/”所在的位置是一个URL模式,与之匹配的URL都会转发到这个项目指定的socks代理。“/”这个值表示把所有请求都转发到socks5代理上去
例如:forward-socks5 / 127.0.0.1:9150 .

!注意:
listen-address指定http代理监听地址只允许本地访问该端口,允许局域网(LAN)访问需要设置为:listen-address  0.0.0.0:8118


三、测试与使用
1. 浏览器
Chrome + Switchyomega:支持socks5代理
2. 命令行(Powershell)
curl -Uri www.google.com -proxy http://127.0.0.1:8118
windows中的curl命令其实是包装的Invoke-WebRequest
3. python
使用urllib3库进行测试
http代理测试代码:
import urllib3
import json

proxy_addr = 'http://127.0.0.1:8118'
print(f'代理地址:{proxy_addr}')

proxy = urllib3.ProxyManager(proxy_addr)
resp = proxy.request('GET', 'https://httpbin.org/ip')
print(resp.data.decode('utf-8'))
socks代理测试代码:
from urllib3.contrib.socks import SOCKSProxyManager
import json

proxy_addr = 'socks5://127.0.0.1:80'
print(f'SOCKS5代理地址:{proxy_addr}')

proxy = SOCKSProxyManager(proxy_addr)
resp = proxy.request('GET', 'https://httpbin.org/ip')
print(resp.data.decode('utf-8'))

url = 'https://www.google.com'
resp = proxy.request('GET', url)
print(f'返回状态码:{resp.status}')

四、遇到的坑
1. ping不通但是浏览器能连上?
简言之,就是ping走的是ICMP协议,在网络层(第三层),而ssr用的是socks代理是传输层 (第四层),上层协议无法对下层协议起作用,因此ping不通,但是通过http(超文本传输协议,应用层协议,在比socks代理层数更高)却可以访问。
大部分都不支持socks代理,而支持http代理
2. ssh隧道开启socks代理,其他代理隧道开启什么代理?
HTTPS代理隧道开启https、WebSocket隧道开启ws、ICMP隧道

References
建立和使用代理服务器 -doc文档
Privoxy教程使用详解_privoxy是什么东西_ZhaoYingChao88的博客-CSDN博客





香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价