socat2

来自百合仙子's Wiki
跳转到导航 跳转到搜索

socat 第二版,支持地址链和 socks5 等新特性。

示例

通过 socks5 代理连接 POP+TLS 服务器:

./socat tcp-listen:34567,fork,reuseaddr 'openssl,method=tls1.2,cn=pop.gmail.com | socks5:pop.gmail.com:995 | tcp:127.0.0.1:9500'

透明 socks5 代理

配合 iptables 将流量重定向到代理:

./socat tcp-listen:34567,fork,reuseaddr 'socks5:pop.gmail.com:995 | tcp:127.0.0.1:9500'
sudo iptables -t nat -I OUTPUT -p tcp --dport 995 -d 127.0.0.1 -j REDIRECT --to-ports 34567

systemd 配置:

[Unit]
Description=Connect to GMail POP using socks5 proxy
After=archsocks.service
Requires=archsocks.service

[Service]
Type=simple
SyslogIdentifier=gmail-pop
User=nobody
PermissionsStartOnly=true

ExecStart=/usr/local/bin/socat2 tcp-listen:1995,bind=127.0.0.1,fork,reuseaddr 'socks5:pop.gmail.com:995 | tcp:127.0.0.1:9500'
ExecStartPost=/usr/bin/iptables -t nat -I OUTPUT -p tcp --dport 995 -d 64.233.164.109 -m comment --comment gmail-pop -j REDIRECT --to-ports 1995
ExecStopPost=/usr/bin/iptables -t nat -D OUTPUT -p tcp --dport 995 -d 64.233.164.109 -m comment --comment gmail-pop -j REDIRECT --to-ports 1995

[Install]
WantedBy=multi-user.target

OpenSSL 选项

method
TLS/SSL 协议版本,默认 SSLv2,建议设置为 TLS1.2
cn, commonname
对端域名。默认为空(不检查)。

注意: socat2 似乎不支持 SNI。