一个端口通过 wifi,其他端口使用 lan

一个端口通过 wifi,其他端口使用 lan

我工作的地方,我的电子邮件 imap(使用 thunderbird)只能通过 wifi 开启。其余的大多只能通过有线连接(而且速度更快)。那么,当 wifi 和有线都连接时,通过 wifi 使用我的邮件(假设 smtp 的 imap 端口为 993 和 465)并通过有线连接所有其他邮件的最佳选择是什么。顺便说一下,仅适用于这个位置(因此可能需要批量撤消并重做)。使用 ubuntu 14.04 桌面(在笔记本电脑上)。

答案1

首先,确保你已经iproute安装了该软件包。如果你有 ip 命令,那么你就设置好了

/etc/iproute2/rt_tables通过附加以下行来编辑并添加新表:

200 wlan-route

然后,您需要为名为 wlan-route 的新路由表配置默认网关,并创建规则以有条件地将流量发送到该表。我假设您的默认网关是 192.168.0.1。当然,这需要与您的实际网络相匹配,而不仅仅是我的假设。

ip route add default via 192.168.0.1 dev wlan0 table wlan-route
ip rule add fwmark 0x1 table wlan-route

您最终的注释脚本将如下所示:

# Populate secondary routing table
ip route add default via 192.168.0.1 dev wlan0 table wlan-route
# Anything with this fwmark will use the secondary routing table
ip rule add fwmark 0x1 table wlan-route
# Mark these packets so that iproute can route it through wlan-route
iptables -A OUTPUT -t mangle -o eth1 -p tcp --dport 993 -j MARK --set-mark 1
# now rewrite the src-addr
iptables -A POSTROUTING -t nat -o wlan0 -p tcp --dport 993 -j SNAT --to 192.168.0.2

此脚本通过 wlan0 发送端口 993 上的任何流量

来源

答案2

可以根据目的地添加额外路线来解决问题。

从航站楼

sudo ip route add ip_address_mail_server dev wlan0

这可以通过编辑连接来完成/etc/NetworkManager/system-connections/connection_name

sudo nano /etc/NetworkManager/system-connections/connection_name


[connection]
id=Auto XXXX
uuid=f4a27a71-202f-45ac-bc58-59a55600f515
type=802-11-wireless

[802-11-wireless]
ssid=XXXX
mode=infrastructure
mac-address=18:CF:5E:23:2A:0A
security=802-11-wireless-security

[802-11-wireless-security]
key-mgmt=wpa-psk
auth-alg=open
psk=yyyyyyyyy

[ipv4]
method=auto
routes1=xxx.xxx.xxx.xxx;32;yyy.yyy.yyy.yyy;0;

[ipv6]
method=auto

xxx.xxx.xxx.xxx-代表邮件服务器的 ip 地址

yyy.yyy.yyy.yyy - 代表 wlan0 接口的网关

编辑1

第二种方法更精确,但也更复杂

我们从iptable开始,这里我们smtp以服务作为路由,使用mangleiptable表来修改smtp数据包。

  sudo iptables -t mangle -A OUTPUT -p tcp –dport 993 -j MARK –set-mark 0×1

我们将所有目标端口的数据包标记993为“0×1”。

现在保存并重新启动iptables

service iptables save
service iptables restart

要从中删除该条目,iptables我们可以使用-D而不是-A

/etc/iproute2/rt_table接下来,只需输入一个条目即可创建一个新的 IP 路由表

100 smtp

为数据包编写规则smtp

ip rule add fwmark 0×1 lookup smtp

在新的 smtp 表中添加路由。这里我们将使用 '192.168.1.1′ 作为网关smtp。所有其他流量都将通过默认网关,可以通过 IP route show 命令查看。

我们从主表复制除默认网关条目之外的所有条目。

 sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done

将数据包的默认网关条目添加smtp到表中smtp

  sudo ip route add default via 192.168.1.1 table smtp

使用ip route show table smtp to show all routes atsmtp`。

就是这样..我们做到了!!!

imap对端口重复所有操作465

相关内容