RouterOS Socksify简单配置
Socksify的含义基本理解是使一个应用程序 SOCKS 化,即让它走 SOCKS 代理,通常是将某个应用的TCP端口重定向到SOCKS代理服务器,通过代理服务器转发。RouterOS从v7.20开始支持Socksify,即RouterOS作为一个SOCKS客户端连接SOCKS代理服务器,并通过dst-nat重定向端口走socksify连接SOCKS代理。
下面的示例是两台RouterOS,一台作为SOCKS代理服务,一台作为客户端使用Socksify,将客户端RouterOS下主机192.168.1.12访问网页的HTTP和HTTPs(TCP/80,443)通过Socksify指定另外一台RouterOS搭建的SOCKS v5的代理服务器。
SOCKS代理服务配置
下面是RouterOS创建一个要求账号密码认证的SOCKS5代理,配置如下,使用1122端口作为SOCKS代理端口,版本使用v5,在winbox进入ip->socks

在Users下创建用户账号:

命令行:
[admin@SOCKS] >/ip/socks [admin@SOCKS] /ip/socks> set port=1122 version=5 authentication-method=password [admin@SOCKS] /ip/socks>users [admin@SOCKS] /ip/socks/users> add name=user1 password=123
查看是否启用SOCKS,RouterOS v7.20可以进入ip service中查看本地服务端口状态:

此配置默认RouterOS SOCKS服务已经配置好网络,不再赘述基本配置,外网IP地址是172.16.10.2。
客户端配置 socksify
客户端的RouterOS使用PPPoE拨号,拨号接口是ether1,自动获取IP地址并创建默认路由,使用对端分配DNS


命令行配置
[admin@MikroTik] > /interface/pppoe-client/ [admin@MikroTik] /interface/pppoe-client> add add-default-route=yes use-peer-dns=yes disabled=no interface=ether1 name=pppoe-out1 user=fishpine password=123 [admin@MikroTik] /interface/pppoe-client>
启用DNS代理缓存

进入ip socksify配置SOCKS客户端,连接服务端

[admin@MikroTik] >/ip/socksify [admin@MikroTik] /ip/socksify>add disabled=no name=socks1 socks5-password=123 socks5-port=1122 socks5-server=172.16.10.2 socks5-user=user1
配置srcnat规则,从pppoe-out1出去的数据包伪装:
[admin@MikroTik] /ip/socksify>/ip firewall nat [admin@MikroTik] /ip/firewall/nat>add chain=srcnat action=masquerade out-interface=pppoe-out1
这里默认已经创建了DHCP服务器分配IP地址段是192.168.1.0/24,网关是192.168.1.1,DNS是192.168.1.1,
进入ip firewall nat中通过dstnat规则,将192.168.1.12主机的80和443请求重定向到socksify的socks1连接上


命令行:
[admin@MikroTik] /ip/firewall/nat>add action=socksify chain=dstnat dst-port=80,443 protocol=tcp socksify-service=socks1 src-address=192.168.1.12
如果是一个C段的IP地址,可以设置src-address=192.168.1.0/24
[admin@MikroTik] /ip/firewall/nat>add action=socksify chain=dstnat dst-port=80,443 protocol=tcp socksify-service=socks1 src-address=192.168.1.0/24
如果是不连续的IP地址,可以使用address-list来定义多个IP地址,使用src-address-list调用。
以上是一个简单的SOCKS TCP代理配置完成,注意此示例的DNS是自动获取运营商分配,如果你们的网络有特效域名解析,需要考虑DNS服务器的配置。


