A transparent proxy tool based on quic/websocket+tls.
一个基于quic/websocket+tls的透明代理工具,支持智能DNS(windows 不支持),本软件只用于学习网络原理使用编程学习练手. 要求go的版本最低为1.16 。
优点
1.部署超级简单
2.纯go语言编写交叉编译简单,移植简单
3.维护简单要换传输协议,只要在server/client目录各加一个实现文件,然后tunnel增加一个类型即可。
编译方法
1.git clone https://github.com/dosgo/xSocks.git
2.cd cli
3.go build server.go //编译服务器端
4.go build client.go //编译客户端
使用方法
一.自签名证书使用
1.运行server -webPort 443 -quicPort 5002 -password 123456 //运行启动后会在当前目录生成你xx_server.key/xx_server.perm/xx_ca.perm/xx_ca.key; 4个文件。
2.使用quic协议 client -sock5Addr "127.0.0.1:6000" -serverAddr "quic://你的vps公网Ip:5002" -password 123456 //启动好后使用SwitchyOmega填写127.0.0.1:6000地址就可以了
3.使用websocket+tls client -caFile "第一步生成的xx_ca.perm" -sock5Addr "127.0.0.1:6000" -serverAddr "wss://你的vps公网Ip" -password 123456 //启动好后使用SwitchyOmega填写127.0.0.1:6000地址就可以了
二.收费tls证书使用
1.运行server -webPort 443 -quicPort 5002 -password 123456 -certFile "购买的收费证书路径" -keyFile "私钥路径"
2.使用quic协议 client -sock5Addr "127.0.0.1:6000" -serverAddr "quic://你的vps公网Ip:5002" -password 123456 //启动好后使用SwitchyOmega填写127.0.0.1:6000地址就可以了
3.使用websocket+tls client -sock5Addr "127.0.0.1:6000" -serverAddr "wss://你证书签名的域名" -password 123456 //启动好后使用SwitchyOmega填写127.0.0.1:6000地址就可以了
Android
https://github.com/dosgo/xSocks-android
感谢
github.com/google/netstack
github.com/yinghuocho/gotun2socks
github.com/miekg/dns
github.com/xtaci/smux
github.com/hashicorp/yamux
from https://github.com/dosgo/xSocks
--------
我的补充说明
在linux vps上。
先安装go1.16环境:
wget https://dl.google.com/go/go1.16.3.linux-amd64.tar.gz
mkdir go1.16.3
mv go1.16.3.linux-amd64.tar.gz go1.16.3
cd go1.16.3
tar xvf go1.16.3.linux-amd64.tar.gz
echo 'export PATH=$PATH:/root/go1.16.3/go/bin' >> /etc/profile
cd go
mkdir gopath
echo 'export GOROOT=/root/go1.16.3/go' >> /etc/profile
echo 'export GOPATH=/root/go1.16.3/go/gopath' >> /etc/profile
echo 'export PATH=$PATH:/root/go1.16.3/go/gopath/bin' >> /etc/profile
. /etc/profile
这样,go1.16.3环境就搭建好了。
(https://golang.org/dl/)
cd ~
git clone https://github.com/dosgo/xSocks
xSocks-by-dosgo
cd xSocks-by-dosgo
cd cli
go build server.go
(会在当前目录下,生成可执行文件server)
运行./server -webPort 2443 -quicPort 5002 -password mypassword
(会在当前目录生成localhost_ca.key localhost_server.key localhost_ca.pem localhost_server.pem
4个文件)
会显示:
...
Quic Port:5002
webSocket Port:2443
passWord:mypassword
client run: ./client -serverAddr "quic://vps-public-ip:5002"
client run: ./client -serverAddr "wss://vps-public-ip:2443" -caFile xx_ca.pem
client run: ./client -serverAddr "http2://vps-public-ip:2443" -caFile xx_ca.pem
client run: ./client -serverAddr "kcp://vps-public-ip:5005"
client run: ./client -tunType 2 -serverAddr "sudp://vps-public-ip:5006"
2021/04/02 03:10:40 packet_handler_map.go:99: failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
此命令./server -webPort 2443 -quicPort 5002 -password mypassword是运行在前台的,我们可以利用boa来把此命令运行在后台:
boa /root/xSocks-by-dosgo/cli/server -webPort 2443 -quicPort 5002 -password mypassword && reboot
服务器端搭建完成。
在客户机器Mac上。先安装go1.16环境:
wget https://golang.org/dl/go1.16.3.darwin-amd64.tar.gz
mkdir go1.16.3
mv go1.16.3.darwin-amd64.tar.gz go1.16.3
cd go1.16.3
tar xvf go1.16.3.darwin-amd64.tar.gz
echo 'export PATH=$PATH:~/go1.16.3/go/bin' >> ~/.profile
cd go
mkdir gopath
echo 'export GOROOT=~/go1.16.3/go' >> ~/.profile
echo 'export GOPATH=~/go1.16.3/go/gopath' >> ~/.profile
echo 'export PATH=$PATH:~/go1.16.3/go/gopath/bin' >> ~/.profile
. ~/.profile
这样,go1.16.3环境就搭建好了。
cd ~
git clone https://github.com/dosgo/xSocks
xSocks-by-dosgo
cd xSocks-by-dosgo
cd cli
go build client.go
(会在当前目录下,生成可执行文件client)
./client -serverAddr "quic://vps-public-ip:5002" -sock5Addr "127.0.0.1:6000" -password mypassword
不要关闭此terminal.
设置浏览器的socks5代理为127.0.0.1 ,端口为6000 ,浏览器即可翻墙。
不过打不开gmail.com和google.com,怪事。
No comments:
Post a Comment