Total Pageviews

Wednesday 4 May 2016

一个socks代理服务器程序-socksd

A socks5 server implementation RFC 1928 (SOCKS V5)

Features

  • CONNECT and UDP support
  • Hostname resolution
  • Concurrency support
安装方法:
git clone  https://github.com/lparam/socksd socksd-by-lparam
cd  socksd-by-lparam
make
(待make完成后,当前目录下会生成socksd文件。这个socksd文件即为程序的可执行文件。)
root@AR:~/socksd-by-lparam# ./socksd
(从./socksd的输出结果可看出socksd是以daemon方式运行的。)
root@AR:~/socksd-by-lparam# ps aux|grep socksd
root     10076  0.0  0.0   2428   676 ?        Ss   04:39   0:00 ./socksd
root     10080  0.0  0.1   4660   984 pts/1    S+   04:39   0:00 grep socksd
root@AR:~/socksd-by-lparam# netstat -tulpn|grep 10076
tcp        0      0 0.0.0.0:1080            0.0.0.0:*               LISTEN      10076/socksd   
udp        0      0 0.0.0.0:1080            0.0.0.0:*                           10076/socksd
(可以看到socksd所占用/监听的端口号为1080)
root@AR:~/socksd-by-lparam#
root@AR:~/socksd-by-lparam# netstat -tulpn|grep socksd (或者netstat -anp|grep socksd)
tcp        0      0 0.0.0.0:1080            0.0.0.0:*               LISTEN      10076/socksd   
udp        0      0 0.0.0.0:1080            0.0.0.0:*                           10076/socksd   
root@AR:~/socksd-by-lparam# ./socksd -h
(查看使用帮助。得知监听的默认端口为1080.运行命令./socksd -l 0.0.0.0:2070,可以修改监听的端口号为2070
这个socksd默认允许外部ip连接。可以用作tor网络的前置代理。
from https://github.com/lparam/socksd

因为socksd是以daemon方式运行的,所以不能用systemd来运行这个socksd了。
我们可以把socksd添加到启动脚本中:
nano /etc/init.d/socksd-by-lparam
其内容为:
#!/bin/bash

### BEGIN INIT INFO
# Provides: socksd-by-lparam
# Required-Start: $remote_fs $local_fs
# Required-Stop: $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: use it to cross gfw
# Description: try it
### END INIT INFO

/root/socksd-by-lparam/socksd -l 0.0.0.0:2070

exit 0

然后运行:
chmod 755 /etc/init.d/socksd-by-lparam

/root/socksd-by-lparam/socksd -l 0.0.0.0:2070
服务器端就搭建完成了。

在本地机器mac上。
chrome+switchyomega其实比ff更好用,更能抗‘dns污染’。
---------------

查看哪个程序占用了端口1234:
除了lsof -i:1234外,还可用
netstat -tulpn|grep 1234