RSS: https://songxwn.com/atom.xml
tun2proxy 是一个基于 smoltcp 在 Linux 上 通过 HTTP 和 SOCKS 代理的创建隧道接口的项目,使用 Rust 语言开发。
项目地址:https://github.com/blechschmidt/tun2proxy
git clone https://github.com/blechschmidt/tun2proxy.git
# 克隆项目
cd tun2proxy
cargo build --release
# 编译 (需要提前安装 cargo 工具)
cd ./target/release
# 进入输出目录
官方发布地址:https://github.com/blechschmidt/tun2proxy/releases
PS:选好对应 CPU 和系统
本站编译好的:https://songxwn.com/file/tun2proxy (Linux X86-64)
ip tuntap add name tun163 mode tun user $USER
# 提前创建好 tun 三层虚拟口
sudo ip link set tun163 up
# 配置状态为 UP
./tun2proxy --tun tun163 --proxy "socks5://username:passwd@1.1.1.1:9527"
# 前台运行,将 socks5 转换为三层接口。格式为 proto://[username[:password]@]host:port
ip route add 128.0.0.0/1 dev tun163
# 手动配置路由指向,也可以配置策略路由等操作。
PS:IP 命令配置的都是临时的,重启失效。
./tun2proxy --setup auto --proxy "socks5://1.2.3.4:1080"
# 自动将所有流量路由到指定的代理。
Tunnel interface to proxy.
Usage: tun2proxy [OPTIONS] --proxy <URL>
Options:
-t, --tun <name> Name of the tun interface [default: tun0]
--tun-fd <fd> File descriptor of the tun interface
--tun-mtu <mtu> MTU of the tun interface (only with tunnel file descriptor) [default: 1500]
-p, --proxy <URL> Proxy URL in the form proto://[username[:password]@]host:port
-d, --dns <strategy> DNS handling strategy [default: virtual] [possible values: virtual, over-tcp, direct]
--dns-addr <IP> DNS resolver address [default: 8.8.8.8]
-6, --ipv6-enabled IPv6 enabled
-s, --setup <method> Routing and system setup [default: none] [possible values: none, auto]
-b, --bypass <IP|CIDR> IPs and CIDRs used in routing setup which should bypass the tunnel
-v, --verbosity <level> Verbosity level [default: info] [possible values: off, error, warn, info, debug, trace]
-h, --help Print help
-V, --version Print version
当 DNS 解析由机器上的服务或本地网络中的服务器执行时,DNS 解析将不会通过隧道接口执行,因为指向 localhost 或本地网络的路由比 Tun 通道更细。 在这种情况下,建议更新文件以使用通过隧道接口路由的名称服务器地址。当虚拟 DNS 正常工作时,你会看到通过以下方式解析后的主机名连接日志信息,
Tun 虚拟设备和物理网卡的区别是 Tun 虚拟设备是 IP 层设备,从/dev/net/tun 字符设备上读取的是 IP 数据包,写入的也只能是 IP 数据包,因此不能进行二层操作,如发送 ARP 请求和以太网广播。与之相对的是,Tap 虚拟设备是以太网设备,处理的是二层以太网数据帧,从/dev/net/tun 字符设备上读取的是以太网数据帧,写入的也只能是以太网数据帧。从这点来看,Tap 虚拟设备和真实的物理网卡的能力更接近。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.