這是一個(gè)用于Linux、Android、macOS、iOS和Windows上的HTTP和SOCKS代理的隧道接口。HTTP代理支持(未經(jīng)身份驗(yàn)證、基本身份驗(yàn)證和摘要身份驗(yàn)證)
SOCKS4和SOCKS5支持(未經(jīng)身份驗(yàn)證,用戶名密碼身份驗(yàn)證)
SOCKS4a和SOCKS5h支持(通過虛擬DNS功能)
路由所有流量的最小配置設(shè)置
IPv4和IPv6支持
某些用例的GFW規(guī)避機(jī)制
SOCKS5 UDP支持
本機(jī)支持通過TCP代理DNS
如何構(gòu)建源碼?
復(fù)制倉庫,然后cd到項(xiàng)目文件夾,然后運(yùn)行
1,二進(jìn)制安裝,直接從releases下載,然后配置PATH路徑即可。
2,從源碼構(gòu)建,cargo install tun2proxy。
1,自動(dòng)配置
使用--setup,您可以讓tun2proxy將您的系統(tǒng)配置為通過指定的代理自動(dòng)路由所有流量。這需要以root身份運(yùn)行該工具,并將大致指向描述手動(dòng)設(shè)置的部分中概述的步驟,但使用綁定掛載來覆蓋/etc/resolv.conf文件除外。你應(yīng)該想下面這樣運(yùn)行工具:
sudo ./target/release/tun2proxy --setup --proxy "socks5://1.2.3.4:1080"
除了SOCKS5之外,還支持SOCKS4和HTTP。
請注意,如果您的代理是非全局IP地址(例如,因?yàn)榇硎怯杀镜剡\(yùn)行的某個(gè)隧道工具提供的),則您還需要提供實(shí)際傳輸流量的服務(wù)器的公共IP地址。在這種情況下,如果您希望使用自動(dòng)設(shè)置功能,該工具將告訴您通過--bypass<IP>指定地址。
2,手動(dòng)配置
標(biāo)準(zhǔn)設(shè)置將通過隧道接口路由來自系統(tǒng)的所有流量,其配置如下:# The proxy type can be either SOCKS4, SOCKS5 or HTTP.
PROXY_TYPE=SOCKS5
PROXY_IP=1.2.3.4
PROXY_PORT=1080
BYPASS_IP=123.45.67.89
# Create a tunnel interface named tun0 which you can bind to,
# so we don't need to run tun2proxy as root.
sudo ip tuntap add name tun0 mode tun
sudo ip link set tun0 up
# To prevent a routing loop, we add a route to the proxy server that behaves
# like the default route.
sudo ip route add "$BYPASS_IP" $(ip route | grep '^default' | cut -d ' ' -f 2-)
# Route all your traffic through tun0 without interfering with the default route.
sudo ip route add 128.0.0.0/1 dev tun0
sudo ip route add 0.0.0.0/1 dev tun0
# If you wish to also route IPv6 traffic through the proxy, these two commands will do.
sudo ip route add ::/1 dev tun0
sudo ip route add 8000::/1 dev tun0
# Make sure that DNS queries are routed through the tunnel.
sudo sh -c "echo nameserver 198.18.0.1 > /etc/resolv.conf"
./target/release/tun2proxy --tun tun0 --proxy "$PROXY_TYPE://$PROXY_IP:$PROXY_PORT"
此工具實(shí)現(xiàn)了虛擬DNS功能,交換機(jī)通常使用的--DNS virtual。當(dāng)檢測到DNS數(shù)據(jù)包到端口53時(shí),會(huì)選擇198.18.0/15的IP地址并將其映射到查詢名稱。指向該范圍中某個(gè)IP地址的連接將為代理提供映射的查詢名稱,而不是IP地址。由于許多代理不支持UDP,因此在大多數(shù)情況下,這可以實(shí)現(xiàn)開箱即用的體驗(yàn),而無需依賴第三方解析器或應(yīng)用程序。根據(jù)您的使用情況,您可能希望使用--dns direct禁用此功能。在這種情況下,您可能需要一個(gè)額外的工具,如dnsproxy,該工具被配置為偵聽本地UDP端口,并通過TCP與第三方上游DNS服務(wù)器通信。當(dāng)您終止此程序并希望消除以上幾個(gè)命令造成的影響時(shí),可以執(zhí)行以下命令,路由所使用的隧道設(shè)備將被刪除。
該文章在 2024/3/28 22:28:55 編輯過