一、文章概要
- 實(shí)現(xiàn)效果:ssh連接遠(yuǎn)程服務(wù)器進(jìn)行網(wǎng)絡(luò)轉(zhuǎn)發(fā),本地服務(wù)連接網(wǎng)絡(luò)代理
- 環(huán)境:windows11/10
- 需要工具:MobaXterm(ssh隧道端口轉(zhuǎn)發(fā)),Privoxy(socks轉(zhuǎn)http代理),一個(gè)云服務(wù)器
?二、步驟
1. 用SSH從本地計(jì)算機(jī)連接遠(yuǎn)程主機(jī)
多種方法選一種即可:?
- 命令行:ssh -C -N -D LOCAL_ADDRESS:LOCAL_PORT USER@REMOTE_ADDRESS
- Putty客戶端
- MobaXteam中的MobaSSHTunnel

2. Privoxy安裝和配置
1. 官網(wǎng)下載壓縮包版本?http://www.privoxy.org/
2. 修改配置文件:
- 通過listen-address指定HTTP代理的監(jiān)聽地址和端口。默認(rèn)privoxy的配置文件會(huì)帶有這一項(xiàng)。
其格式為:listen-address? [ADDRESS]:[PORT]?
默認(rèn)值是:listen-address? 127.0.0.1:8118
- 通過forward-socks5指定轉(zhuǎn)發(fā)到socks代理
默認(rèn)privoxy的配置文件不會(huì)配置這一項(xiàng)。
forward-socks5支持的格式比較復(fù)雜,但是這里只需要簡單的寫成如下內(nèi)容就可以了:
forward-socks5 / [SOCKS_ADDRESS]:[SOCKS_PORT] .
其中“/”所在的位置是一個(gè)URL模式,與之匹配的URL都會(huì)轉(zhuǎn)發(fā)到這個(gè)項(xiàng)目指定的socks代理。“/”這個(gè)值表示把所有請(qǐng)求都轉(zhuǎn)發(fā)到socks5代理上去
例如:forward-socks5 / 127.0.0.1:9150 .
!注意:
listen-address指定http代理監(jiān)聽地址只允許本地訪問該端口,允許局域網(wǎng)(LAN)訪問需要設(shè)置為: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命令其實(shí)是包裝的Invoke-WebRequest
3. python
使用urllib3庫進(jìn)行測試
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'返回狀態(tài)碼:{resp.status}')
四、遇到的坑
1. ping不通但是瀏覽器能連上?
簡言之,就是ping
走的是ICMP
協(xié)議,在網(wǎng)絡(luò)層(第三層),而ssr
用的是socks代理
是傳輸層 (第四層),上層協(xié)議無法對(duì)下層協(xié)議起作用,因此ping不通,但是通過http(超文本傳輸協(xié)議,應(yīng)用層協(xié)議,在比socks代理
層數(shù)更高)卻可以訪問。
大部分都不支持socks代理,而支持http代理
2. ssh隧道開啟socks代理,其他代理隧道開啟什么代理?
HTTPS代理隧道開啟https、WebSocket隧道開啟ws、ICMP隧道
References
建立和使用代理服務(wù)器 -doc文檔文章來源:http://www.zghlxwxcb.cn/news/detail-407993.html
Privoxy教程使用詳解_privoxy是什么東西_ZhaoYingChao88的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-407993.html
到了這里,關(guān)于SSH隧道動(dòng)態(tài)轉(zhuǎn)發(fā)端口實(shí)現(xiàn)SOCKS代理 + HTTP代理(Privoxy)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!