给socks5套个壳

作者:
淡白
创建时间:
2021-09-06 20:05:18
Go socks5

摘要:文章介绍了当学习网站被限制访问时,通过搭建一个套壳的socks5代理来解除限制的方法。作者修改了开源库socks5proxy的代码,添加了与最初的socks5代理相连接的功能。然后编译服务端和客户端代码,在服务端运行新的套壳服务端,在本地电脑上运行客户端,并将代理设置为本地客户端的代理端口,这样就能够访问限制的学习网站。并且作者在后续将该方法进行了改进和重写。

限制我学习

由于公司限制了哔哩哔哩等学习网站我用的代理也是明文的socks5于是上级路由还是能够通过http给我拦截了。 注:我用socks5主要的原因是方便访问局域网

于是我便给我的socks5套了一层壳 通过修改socks5proxy开源库即可实现。

解除限制

前面的开源库本身就是一个socks5服务器和客户端,但为了连接我之前的socks(有代理)需要用到另一个socks5的开源实现socks5 修改 socks5proxy 代码

server.go文件

//添加依赖
"github.com/txthinking/socks5"

//修改41行附近

// 连接真正的远程服务
	newClient, err := socks5.NewClient("socksServer", "", "", 0, 60)
	if err!=nil{
		return
	}
	dstServer, err := newClient.Dial("tcp", request.RAWADDR.String())
	//dstServer, err := net.DialTCP("tcp", nil, request.RAWADDR)
	if err != nil {
		log.Print(client.RemoteAddr(), err)
		return
	}
	defer dstServer.Close()

然后编译服务端和客户端代码,在socks5原来的服务器端上运行这个新的套壳服务端。 在本地电脑上运行客户端。注意启动参数,启动客户端后把网络代理的socks5替换成本地客户端的代理端口,就能访问b站了。

追更 9.14

前面的实现有些问题,后面我重写了。 Github