我在ubuntu机器上安装了一个Dante代理服务器,它有4个NIC、一个以太网(eth0(和三个usb调制解调器(usb1、usb2、usb3(。所有人都有自己的互联网连接。我试图以这样的方式进行设置,即,代理仅在不同端口上侦听eth0,并且根据客户端连接的端口号,适当的usb调制解调器将用作客户端的外部网关。这是我的danted.conf文件
logoutput: /var/log/socks.log
internal: eth0 port = 4343
internal: eth0 port = 4344
internal: eth0 port = 4345
internal: eth0 port = 4346
external: usb1
external: usb2
external: usb3
external.rotation: route
user.privileged: root
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
log: connect disconnect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
我看到两种选择,要么使用
external.rotation: route
选择路由流量,但似乎不知道,如何为其设置路由表
第二个选项是在每个特定端口上设置多个Dante代理侦听实例。我试过
sudo cp /etc/init.d/danted /etc/init.d/danted1
sudo nano /etc/danted1.conf
并更改了
daemon=/usr/sbin/danted1
NAME=danted1
sudo /etc/init.d/danted1 start
但对于这两个实例,它似乎仍然使用相同的danted.conf文件,并且无法绑定到给定的ip地址,因为两者都试图绑定到同一个端口。我确信我错过了一些非常明显的东西。
欢迎提出任何建议。谢谢
我可以想出两种方法来做到这一点,但是"external.rotation:route;不是其中之一(这个选项实际上意味着Dante将查阅路由表,看看它应该为每个目的地使用什么外部地址,但这不是你想要的,因为你想覆盖路由表(:
-
选项A是您已经尝试过的。运行Dante的四个实例,每个实例对应一个internal:/external:address元组。这是最简单、最便宜的选择,除非您的机器负载太高,导致运行多个Dante实例成为问题,或者您更喜欢只管理一个Dante而不是四个实例。您只需要了解如何使Dante的每个实例在您的特定系统上使用它自己的sockd.conf。独立于系统的方式是通过使用Dante的"sockd.conf"为每个Dante实例指定不同的sockd.conf-f";选项
-
选项B是通过购买";重定向模块";Inferno Nettverk A/S为Dante出售(参见https://www.inet.no/dante/module.html)。这将允许您运行Dante的一个实例,并使用重定向模块指定Dante在给定内部地址上接受的客户端应该是";重定向";来自给定的外部地址。您可以说,例如,在内部端口4343上接受的客户端应该从外部地址usb2转发。