go-to-internet是一款轻量级的,基于TLS协议的透明代理服务器,该代理服务器的特点是配置简单、连接稳定、支持多用户验证,目前已有macos系统的ui客户端,安卓、windows客户端也在开发和计划中
go-to-internet项目的源代码在这里,下载其最新发行版本的server-linux-amd64.tar.gz文件到服务器上
wget https://github.com/Luna-CY/go-to-internet/releases/download/v2.0.1/server-linux-amd64.tar.gz
解压后就已经安装完成了,不过为了方便使用,可以将ser-go-to-net
以及manager-go-to-net
两个命令移动到/usr/local/bin
目录下
mv *-go-to-net /usr/local/bin
证书建议通过acme.sh工具申请,手动申请证书请参考此文档,也可以通过manager-go-to-net
命令来辅助申请
如果你的服务器没有安装acme.sh工具,那么通过命令manager-go-to-net acme -install
可以自动安装该工具到$HOME/.acme.sh
目录下
安装完成后通过命令manager-go-to-net acme -issue -nginx -hostname YOUR_HOST
来为你的域名申请证书,此过程是自动的
如果你的服务器没有安装nginx,申请过程中将会询问是否安装nginx服务,输入y继续
如果安装nginx失败,请运行一次apt update
命令或yum update
命令,取决于你的系统
如果申请失败请检查域名是否正确解析到服务器上,并且服务器是否开放了80端口
ser-go-to-net
命令通过配置文件/etc/go-to-net/users.json
来管理用户,该文件无需手动编辑,manager-go-to-net
提供了用户管理功能
可以通过命令manager-go-to-net user -add -u USERNAME -p PASSWORD
简单的创建一个新的用户,如果需要对用户进行适当的限制,可以向该命令后追加额外参数
-expired 2020-05-21T23:59:59
或-expired -
可以限制用户的有效期,-
短横线表示该用户不过期,具体时间表示将在指定时间后过期-max-rate 1024
或-max-rate 0
可以限制用户的最大传输速率,0表示不限速,大于0表示速度上线,其单位为byte(注:1byte=8bit,所以这里的1024表示的是1024KB而非1024kb)-max-connection 100
或-max-connection 0
可以限制用户的最大连接数量,0表示不限制,大于零表示该用户同时最多有指定数量的连接请求通过命令manager-go-to-net user -upd -u USERNAME [options]
可以修改一个用户的配置,其中[options]
部分可以替换为新增用户时可用的一个或多个参数
注意,修改后记得重启代理服务,否则不生效
通过命令manager-go-to-net user -del -u USERNAME
删除用户
注意,删除后记得重启代理服务,否则不生效
通过命令manager-go-to-net user -list
查看已有的用户列表,该命令显示用户的用户名
、过期时间
、最大连接速率
申请证书完成并且配置了用户后通过命令ser-go-to-net -H YOUR_HOST
启动代理服务,此时将在服务器的443端口监听请求
为了方便以后使用,建议将启动委托给系统的systemd服务管理,将一下代码保存到/etc/systemd/system/go-to-internet.service
文件中
[Unit]
Description=Go To Internet
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ser-go-to-net -H YOUR_HOST
[Install]
WantedBy=multi-user.target
之后可以通过一下命令操作
systemctl start go-to-internet
systemctl stop go-to-internet
systemctl restart go-to-internet
目前代理服务暂不支持reload命令