git clone https://github.com/jtripper/dns-tcp-socks-proxy
cd dns-tcp-socks-proxy
yudeMacBook-Air:dns-tcp-socks-proxy brite$ gcc -o dns_proxy dns_proxy.c
(此命令会在当前目录下,生成可执行文件dns_proxy)
实际例子:
sudo wg-quick up wg0
sudo networksetup -setdnsservers Wi-Fi Empty && sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
cd ~/dns-tcp-socks-proxy && sudo ./dns_proxy
这次,它表现不错。运行了好几个小时才翻墙失败。解决办法:很简单,
先断开vpn- 运行sudo wg-quick down wg0 ,
然后重新运行上面的三步命令。
项目地址:https://github.com/jtripper/dns-tcp-socks-proxy
https://github.com/JustinHop/dns-socks-proxy
--------
dns-tcp-socks-proxy, 通过SOCKS实现隧道DNS请求
Simple daemon to tunnel DNS requests over SOCKS
git://www.github.com/jtripper/dns-tcp-socks-proxy.git
Git Clone代码到本地:git clone http://www.github.com/jtripper/dns-tcp-socks-proxy
通过socks代理( 例如通过ssh或者 Tor ) 实现隧道DNS请求的简单DNS代理。 在设置透明代理时,这可能非常有用。
它为从文件" resolv.conf"中的每个请求选择一个随机DNS服务器,它是一个分隔的DNS服务器。
为了绑定到端口 53,守护进程必须作为 root 运行。
用法
用法:。/dns代理 [options ]
如果没有参数,则从'dns_proxy.conf'读取配置文件。
- -n --没有配置文件( socks: 127.0.0.1: 9050,侦听器:0.0.0.0: 53。
- -h --打印这里消息并退出。
- config_file --从指定的配置文件中读取。
配置
配置文件中应该包含以下任何选项( 并忽略以以下方式开始的行'#'):
- socks_addr -- socks侦听器地址
- socks_port -- socks侦听器端口
- dns代理侦听的listen_addr --地址
- 用于侦听dns代理的listen_port --端口( 大多数情况下为 53 )
- 绑定后要删除的set_user --用户名
- 绑定后要删除的set_group --组
- resolv.conf 文件的resolv_conf --位置
- log_file --位置登录到( 应该是/dev/null,除非调试)。
任何未指定的选项都将设置为默认值:
- socks_addr = 127.0.0.1
- socks_port = 9050
- listen_addr = 0.0.0.0
- listen_port = 53
- set_user = 无
- set_group = 无
- resolv_conf = resolv.conf
- log_file =/dev/null
在其他发行版上安装:
git clone https://github.com/jtRIPper/dns-tcp-socks-proxy.git
cd dns-tcp-socks-proxy
make
# edit dns_proxy.conf as necessary
./dns_proxy
运行守护进程后,应将系统配置为自动使用代理。