Total Pageviews

Monday 8 February 2016

基于 nodejs 的 SOCKS5代理服务器程序:socks5


A simple SOCKS implementation  in node.js.

You can run it easily as:

node proxy.js

This will create a proxy at 127.0.0.1 on port 8888

from https://github.com/sequoiar/socks5,

这个socks5程序的原版https://github.com/gvangool/node-socks有问题,所以我放弃了使用:
https://github.com/gvangool/node-socks
--------------

https://gitlab.com/johncant/node-socks这个也是fork自https://github.com/gvangool/node-socks,但是fork后,没做任何修改,所以也是有问题的。

----------------

我的补充说明:

 登陆linux vps.先安装nodejs环境。然后,
git clone https://github.com/sequoiar/socks5 socks5-by-sequoiar
cd  socks5-by-sequoiar

root@umh:~/socks5-by-sequoiar# ls
AUTHORS  LICENSE  README.md  package.json  proxy.js  socks.js
root@umh:~/socks5-by-sequoiar# nano proxy.js
(把HOST的值由127.0.0.1改为0.0.0.0 ,把 PORT的值改为另一个值,比如58889 。)
root@umh:~/socks5-by-sequoiar# node proxy.js &

不过命令: node proxy.js &仍然容易退出,我们可以利用systemd来把该命令运行为service:
nano /etc/systemd/system/socks5-by-sequoiar.service
内容为:
[Unit]
After=network.target

[Service]
WorkingDirectory=/root/socks5-by-sequoiar/
ExecStart=/usr/bin/node /root/socks5-by-sequoiar/proxy.js
Restart=always

[Install]
WantedBy=multi-user.target


然后运行:
systemctl start socks5-by-sequoiar
systemctl enable socks5-by-sequoiar

服务器端搭建完成。

在本地机器上。以firefox为例。
设置ff的socks5代理服务器地址为vps-ip:3089 ,还要设置ff的dns解析为远程dns解析:
DNS查询的时候记录的仍然是你本身所在的网络,并没有做到完全的保密。这种情况也是有解决方案的。
打开Firefox浏览器,地址栏中输入about:config进入浏览器的内部设置,在使用该配置的时候要非常的谨慎,配置不当可能会使浏览器无法正常使用。在弹出的告警对话框中点击”我了解此风险!”进入下一个页面。
在顶部的搜索栏中输入”network.proxy.socks_remote_dns”,然后双击该配置项,配置就发生了变化,状态由默认变成了已修改,值由false(默认值)变成了true。配置生效后,Firefox就会使用代理转发DNS请求而不是在本地解析。
这样,ff即可翻墙。

不过,chrome+switchyomega其实比ff更好用,更能抗‘dns污染’。