Skip to content

配合 Tunnel 类工具使用

boytm edited this page Dec 26, 2017 · 4 revisions

工作原理

mproxy 部署在远端服务器上,工作在 HTTP 代理模式,然后将 tunnel 类工具的流量指向 mproxy,这样就客户端以 HTTP 代理函数直接访问 tunnel 的本地端口即可。

HTTP 模式下,建议让 mproxy 搭配 DNS 缓存使用(dnsmasq、pdns)。

1. 这里以 kcptun 为例

1.1. 远端服务器:

mproxy 监听 127.0.0.1 的 12948 端口

mproxy -l12948 -b127.0.0.1 --user nobody

kcptun 工作在 server 模式,监听 UDP 50010 端口,并将 tunnel 目的地址设置为 mproxy 的地址——127.0.0.1:12948

kcptun -l 0.0.0.0:50010 -t 127.0.0.1:12948 -key my_password --crypt aes --mtu 1350 --mode normal    

1.2. 本地:

kcptun 工作在 client 模式,监听本地 8081 端口

kcptun.exe -l 0.0.0.0:8081 -r your_server:50010 --key my_password --crypt aes --mtu 1300 

1.3. 本地使用方法

本地至此有一个 HTTP 代理: http://127.0.0.1:8081 。 下面分别介绍 浏览器 和 命令行工具 各自的使用

浏览器使用方法

设置对所有协议使用相同 HTTP 代理: http://127.0.0.1:8081 即可

命令行工具的使用方法

Linux 上使用 git 或者 curl 类工具,一般设置下面环境变量即可

export HTTP_PROXY=http://127.0.0.1:8081                 
export HTTPS_PROXY=http://127.0.0.1:8081
export ALL_PROXY=http://127.0.0.1:8081 

2. 这里以 ssh 为例

2.1. 远端服务器:

mproxy 监听 127.0.0.1 的 12948 端口

mproxy -l12948 -b127.0.0.1 --user nobody

有正常工作的 openssh 即可

2.2. 本地:

ssh 客户端使用 local port-forwardings 即可。这里以监听本地 0.0.0.0 的 8081 端口,并 tunnel 到远端服务器的 127.0.0.1:12948

ssh -L0.0.0.0:8081:127.0.0.1:12948 your_server

2.3. 本地使用方法

本地至此有一个 HTTP 代理: http://127.0.0.1:8081 。 具体使用方法类似上面 1.3 kcptun 里面的