drcoms / drcom-generic

Dr.COM/DrCOM 现已覆盖 d p x三版。
GNU Affero General Public License v3.0
1.15k stars 268 forks source link

可否支持绑定指定网卡 #42

Closed holotr closed 8 years ago

holotr commented 8 years ago

学校D版 端口限速2M 但是每个账号可以同时登陆两个终端 希望能够支持多播

mchome commented 8 years ago

dhcp没有多拨这个概念,应该是没有拨号这个动作,但是应该可以绑定多个网卡来登陆

holotr commented 8 years ago

恩恩就是这个意思 绑到路由的不同接口

mchome commented 8 years ago

LZ可以试下拷贝两份分别修改接口和配置文件试下一起运行,多进程我不想写2333333

holotr commented 8 years ago

怎么修改接口和配置文件?

mchome commented 8 years ago

像原来那样修改配置参数,接口是nic_name,可以修改成eth0.2,eth0.3之类的,用ifconfig可以查到。

taolin1983 commented 8 years ago

我已经成功用D版在pandorabox中实现了同时挂载两个drcom绑定到不同的vwan接口。现在的问题是,我是通过在vwan设定静态的IP地址,然后直接修改您程序里面的bind_ip为我指定的接口IP来实现区别两个不同的drcom脚本的。这样做的原因是:按照您的说法修改nic_name,无论是在电脑上还是通过SSH在路由器段运行脚本都会报错: Traceback (most recent call last): File "C:\XXXX\router\latest-wired.py", line 29, in bind_nic() NameError: name 'bind_nic' is not defined

还望指点一二。

ly0 commented 8 years ago

bind_nic函数移到L28之前 233333

taolin1983 commented 8 years ago

这个我也试过啦~不过又跳出另外一个错误: Traceback (most recent call last): File "C:\XXXX\router\latest-wired.py", line 63, in s.bind((bind_ip, 61440)) NameError: name 'bind_ip' is not defined

是不是bind_ip获取失败?

mchome commented 8 years ago

我2了,忘了看变量范围

taolin1983 commented 8 years ago

额,我尝试了新的latest-wired.py,好像脚本没有办法绑定指定的虚拟端口。比如:首先我设定nic_name=‘macvlan2’,然后我发现脚本运行后得到的bind_ip是0.0.0.0。然后我尝试让nic_name留空,然后直接设定bind_ip为macvlan2对应的ip地址。这种情况下,脚本运行后表现上看还是从macvlan1拨出去的。

taolin1983 commented 8 years ago

只有在运行drcom脚本前,强硬地通过mwan3负载均衡设置把所有流量都导向macvlan2,然后运行脚本,才能成功地通过macvlan2拨号。这样做的问题是,在切换mwan3负载策略时,网络似乎会短时间断掉,在有多个drcom需要挂上去的时候,已经挂上去的drcom容易断掉。

mchome commented 8 years ago

你在op上跑还是电脑上跑 latest-wired.py ? 拨上了不能断开,需要单独的设置一条策略或者iptables来直连认证服务器。

taolin1983 commented 8 years ago

直接在路由器上跑。我刚搞定了。drcom进程实际上是成功绑定了端口,但是认证的数据包都是走的主路由表的默认网关,也就是macvlan1,单独设置一条策略似乎都没有效果。甚至关掉mwan3负载均衡功能也没有用。所以我是直接在防火墙那边加了几条Source NAT封包伪装规则才搞定的。现在可以稳定地挂4个drcom。

mchome commented 8 years ago

恭喜 :+1:

mchome commented 8 years ago

第一个是CONF="",不过是多余的

mchome commented 8 years ago

我改了下,应该可以绑定指定端口了,大概 :)

HackerYunen commented 4 years ago

直接在路由器上跑。我刚搞定了。drcom进程实际上是成功绑定了端口,但是认证的数据包都是走的主路由表的默认网关,也就是macvlan1,单独设置一条策略似乎都没有效果。甚至关掉mwan3负载均衡功能也没有用。所以我是直接在防火墙那边加了几条Source NAT封包伪装规则才搞定的。现在可以稳定地挂4个drcom。

同样遇到同你一样的问题,请问您是如何通过Source NAT封包怎样解决的呢,求详细配置教程。orz

monkiq commented 3 years ago

直接在路由器上跑。我刚搞定了。drcom进程实际上是成功绑定了端口,但是认证的数据包都是走的主路由表的默认网关,也就是macvlan1,单独设置一条策略似乎都没有效果。甚至关掉mwan3负载均衡功能也没有用。所以我是直接在防火墙那边加了几条Source NAT封包伪装规则才搞定的。现在可以稳定地挂4个drcom。

同样遇到同你一样的问题,请问您是如何通过Source NAT封包怎样解决的呢,求详细配置教程。orz

mwan3会造成drcom拨号断开,这个SNAT是改变源地址的,但是怎么分流的呢,没搞懂