Aug 28

移动网络完全没法下载 BT,想到用电信网络做代理,试过 shadowsocks,3proxy 等大量 Socks5 服务器软件,都因为不支持 udp:// 格式的 Tracker 服务器导致速度上不去,最后用 Dante 解决问题。证据看下面用 Proxifier 代理 qBittorrent 的截图:

我们从源码安装 Dante:

# cd /usr/src
# wget http://www.inet.no/dante/files/dante-1.4.2.tar.gz
# tar -zxf dante-1.4.2.tar.gz
# cd dante-1.4.2/
# apt-get install gcc make
# ./configure --prefix=/usr/local --sysconfdir=/etc --localstatedir=/var --disable-client --without-libwrap --without-bsdauth --without-gssapi --without-krb5 --without-upnp --without-pam
# make && make install

之后检查下安装情况:

# /usr/local/sbin/sockd -v
Dante v1.4.2. Copyright (c) 1997 - 2014 Inferno Nettverk A/S, Norway

编辑配置文件:

# nano /etc/sockd.conf

内容如下:

logoutput: /var/log/socks.log

internal: 0.0.0.0 port = 10086
external: br0/eth0/ppp0 #这里一定要设置对,可用 ifconfig 查看

socksmethod: username #使用 Linux 内置用户登录,请添加一个不能 SSH 的专用账户,Socks5 连接时账户密码是明文,如无认证需要这里填 none
user.privileged: root
user.notprivileged: nobody

client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}

client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}

socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}

socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}

启动服务器:

/usr/local/sbin/sockd -f /etc/sockd.conf -D

然后在路由器上做端口映射,把 10086 端口暴露出去即可。 :mrgreen: :mrgreen: :mrgreen:


Dec 16

1. 首先你需要购买一个域名;

2. 证书的获取:

Linux 下可以用 Certbot,acme.sh 等工具来从 Let’s Encrypt 获取证书;

Windows 下推荐用 Caddy 来获取证书,推荐把域名服务器临时设为 Cloudflare 的,然后通过 API 让 Caddy 自动获取证书,API 设置为环境变量,Caddyfile 简单设置为:

mydomain.com:443
root E:WWW
gzip
log ../access.log
tls {
dns cloudflare
}

然后直接运行一下 Caddy.exe 就行了,证书储存在 用户名/.caddy 目录下。

3. 创建服务端:

这里就要用到强大的 Gost 了,各类隧道创建方式:

gost -L="http://user:password@:25" -L="http2://user:password@:143?cert=cert.pem&key=key.pem" -L="socks+tls://user:password@:587?cert=cert.pem&key=key.pem" -L="http+tls://user:password@:465?cert=cert.pem&key=key.pem" -logtostderr -v 5

这么一行就依次创建了:一个监听在 25 端口的支持 http-connect 的代理,一个加密的 http2 代理,一个 Socks Over TLS 代理(目前 Surge 支持)和一个 https 代理,user:password 是用户名密码,cert 和 key 分别是上面域名的数字证书的公匙和私匙。

4. 客户端:

http,https 和 socks5 隧道,Chrome 浏览器(或者通过 SwitchyOmeda 扩展)都直接支持,Socks5 over TLS 目前只看到 Surge 直接支持,http2 没看到直接支持的。不过我们可以转换成普通的 http/socks5 代理来用(远程通讯依然是 TLS 或者 HTTP2 加密的),例如:

#转换 https 为 http,监听在本地 7575 端口
gost -L=http://0.0.0.0:7575 -F=http+tls://user:password@mydomain.com:465?cert=cert.pem&key=key.pem
#转换 socks5 over TLS 为 socks5
gost -L=socks://0.0.0.0:7676 -F=socks+tls://user:password@mydomain.com:587?cert=cert.pem&key=key.pem
#转换 http2 为 socks5
gost -L=socks://0.0.0.0:7878 -F=http2://user:password@mydomain.com:143?cert=cert.pem&key=key.pem

也可以用 HAProxy 做 socks+tls 和 https 的客户端,改天写下。

这样转换后的代理,是可以通过 redsocks2 来透明代理的。


Jul 30

支持 SOCKS5 代理的:DNS2SOCKS

http://sourceforge.net/projects/dns2socks/

dns2socks.jpg

支持 HTTPS (HTTP CONNECT)代理的: DESPROXY-DNS

http://desproxy.sourceforge.net/

dns2https.jpg

能用在什么场合,想用的人自然知道,不多说了。 :evil:

Tags: , ,