一个轻量级的网络混淆代理,基于 SOCKS5 协议,可用来代替 Shadowsocks。
- 只专注于混淆,用最简单高效的混淆算法达到目的;
- 不会放大传输流量,传输流量更少,更快,占用资源更少(内存占用1M左右,CPU 占用 0.1% 左右);
- 纯 Golang 编写,跨平台,对Golang感兴趣?请看Golang 中文学习资料汇总;
安装
去 releases 页下载最新的可执行文件,注意选择正确的操作系统和位数(Mac 系统内核为 darwin)。 解压后会看到2个可执行文件,分别是:- lightsocks-local:用于运行在本地电脑的客户端,用于桥接本地浏览器和远程代理服务,传输前会混淆数据;
- lightsocks-server:用于运行在代理服务器的客户端,会还原混淆数据;
启动
启动 lightsocks-server
在墙外服务器下载好 lightsocks-server 后,执行命令:./lightsocks-server
本地监听地址 listen:
:54261
密码 password:
******
假如服务器的 IP 是 45.56.76.5,则以上日志的含义是指:- 服务监听在
45.56.76.5:54261
,监听端口会随机生成; - 使用的密码是
******
启动 lightsocks-local
在本地电脑下载好 lightsocks-local 后,执行命令:./lightsocks-local
2017/10/11 10:03:16 保存配置到文件 /Users/username/.lightsocks.json 成功
2017/10/11 10:03:16 lightsocks-client:master 启动成功 监听在 [::]:7448
/Users/username/.lightsocks.json
。
为了让客户端用指定的密码去连接服务器,需要给客户端传入参数,为此需要修改该配置文件为如下:{
"remote": "45.56.76.5:54261",
"password": "******"
}
127.0.0.1:7448
的本地 SOCK5 服务就可以正常使用了。都启动成功后,可参考 搭配 Chrome 使用 配置你的 Chrome。
配置
lightsocks-local 支持的选项:
- password:用于加密数据的密码,字符串格式,在没有填时会自动生成;
- listen:本地 SOCKS5 代理客户端的监听地址,格式为
ip:port
,默认为0.0.0.0:7448
; - remote:墙外服务器的监听地址,格式为
ip:port
,默认为0.0.0.0:*
。
lightsocks-server 支持的选项:
- password:用于加密数据的密码,字符串格式,在没有填时会自动生成;
- listen:本地 SOCKS5 代理客户端的监听地址,格式为
ip:port
,默认为0.0.0.0:*
。
注意:
- lightsocks-local 和 lightsocks-server 的 password 必须一致才能正常正常使用,password 不要泄露。
- password 会自动生成,不要自己生成。一般采用拷贝 lightsocks-server 生成的密码到 lightsocks-local 使用的本地配置文件中。
~/.lightsocks.json
文件中读取配置,启动后会把配置保存在 ~/.lightsocks.json
文件中,
其格式为 JSON,内容大致如下:{
"remote": "45.56.76.5:7448",
"password": "******"
}
lightsocks-local your-name.json
启动,这时配置文件会保存到 ~/your-name.json
中。其它语言实现
- lightsocks-python:Python 实现版本;
- lightsocks-android:Android 实现版本;
- lightsocks-node:Node.js 实现版本;
改进版:
https://github.com/uk0/kcp-socks
https://github.com/Yrr0r/lightsocksMod
-----
我的补充说明
首先登陆linux vps.
wget https://github.com/gwuhaolin/lightsocks/releases/download/1.0.6/lightsocks_1.0.6_linux_amd64.tar.gz
mkdir lightsocks
mv lightsocks_1.0.6_linux_amd64.tar.gz lightsocks
cd lightsocks
tar zxvf lightsocks_1.0.6_linux_amd64.tar.gz
root@ar:~/lightsocks# ls
LICENSE lightsocks-server readme.md
lightsocks-local lightsocks_1.0.6_linux_amd64.tar.gz
root@ar:~/lightsocks# chmod 755 lightsocks-server
root@ar:~/lightsocks# ./lightsocks-server lightsocks-go.json
(此命令会在~/下,生成lightsocks-go.json文件.此命令是运行在前台的,暂时按ctl+c,中止该进程)
root@ar:~/lightsocks# cat ~/lightsocks-go.json
{
"listen": ":36160",
"remote": "",
"password": "自动生成的一长串字符"
}
root@ar:~#
(上面的36160是程序lightsocks-server随机指定监听的端口。password的值是程序lightsocks-server生成的密码。)
因为./lightsocks-server lightsocks-go.json是运行在前台的,容易退出。我们可使用systemd把./lightsocks-server lightsocks-go.json运行为service:
nano
/etc/systemd/system/lightsocks.service
内容如下:
[Unit] Description=
/root/lightsocks/lightsocks-server lightsocks-go.json
lightsocks
After=network.target [Service] ExecStart=
Restart=always
[Install]
WantedBy=multi-user.target
启动
lightsocks
:systemctl restart
lightsocks
这其实就是以daemon(service)方式启动
lightsocks
程序。
设置开机启动
lightsocks
:
systemctl enable
lightsocks
至此,
lightsocks
服务器端的配置已经全部完成.
在我的本地机器mac上的情形:
wget https://github.com/gwuhaolin/lightsocks/releases/download/1.0.6/lightsocks_1.0.6_darwin_amd64.tar.gz
mkdir
lightsocks
mv
lightsocks_1.0.6_darwin_amd64.tar.gz
lightsocks
cd
lightsocks
tar zxvf
lightsocks_1.0.6_darwin_amd64.tar.gz
yudeMacBook-Air:lightsocks brite$ ls lightsocks-local lightsocks_1.0.6_darwin_amd64.tar.gz lightsocks-server readme.md yudeMacBook-Air:lightsocks brite$ chmod 755
lightsocks-local
yudeMacBook-Air:lightsocks brite$ ./
lightsocks-local lightsocks-go.json
会显示:
config.go:43: 保存配置到文件 /Users/brite/lightsocks-go.json 成功
main.go:31: 不合法的密码
yudeMacBook-Air:lightsocks brite$ cat /Users/brite/lightsocks-go.json
{
"listen": ":7448",
"remote": "",
"password": ""
}yudeMacBook-Air:lightsocks brite$ nano /Users/brite/lightsocks-go.json
(把listen的值改为0.0.0.0:1083
把remote的值改为your_vps_ip:36160
把password的值改为服务器上的文件
~/lightsocks-go.json里的
password的值)
会显示:
yudeMacBook-Air:lightsocks brite$ ./
lightsocks-local lightsocks-go.json
...
本地监听地址 listen:
[::]:1083
远程服务地址 remote:
your_vps_ip
:36160
密码 password:显示为服务器上的文件
~/lightsocks-go.json里的
password的一样的值
main.go:53: lightsocks-local:1.0.6 启动成功 监听在 [::]:1083
然后设置本地机器上的浏览器的socks5代理服务器为127.0.0.1:1083 ,浏览器即可翻墙。
注意:无论是在服务器上还是在客户机器上,运行可执行文件时,其配置文件要写为
lightsocks-go.json即可,不要写为~/
lightsocks-go.json !!否则会遇错。
-------------------------
----------------------------------------
相关帖子:http://briteming.blogspot.com/2015/11/javalightsocks-java.html
No comments:
Post a Comment