小故事,
3个接口,eth0(局域网),eth1(ADSL),eth2(4G)。
eth0 -> eth1:有效
(端口 80、443、4070) eth0 -> eth2:不会发生
端口 80 和 443 通过 eth2
ant 其余通过 eth1

eth0: -ip 10.0.0.1 -net 10.0.0.0/8 -gw 10.0.0.1 (the servers own intf)
eth1: -ip 192.168.1.74 -net 192.168.1.0/24 -gw 192.168.1.254
eth2: -ip 192.168.1.91 -net 192.168.0.0/24 -gw 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
(端口 80 没有注释并且可以工作,但是通过 eth1 是错误的。)
modprobe iptable_nat
modprobe ip_conntrack
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT …Run Code Online (Sandbox Code Playgroud) 我有一个比较奇怪的问题。我有一个带有两个网络接口的服务器eth0和eth1. 每个都连接到不同的网络。每个网络都有一个互联网网关。服务器有各种出站连接:http(服务器上的一些脚本抓取网站)、nfs 客户端、samba 客户端、dns 客户端和电子邮件提取器等等。
由于我不会讨论的原因,我需要将这些出站客户端分开,以便出站 http、nfs、samba 和 dns 流量仅在eth0其他所有内容通过eth1.
我已经阅读了一些谷歌搜索,它看起来iptables是我需要的,但我真的没有任何线索。我只习惯于通过ufw.
有人可以从一些示例规则开始,告诉我如何让系统在启动时采用这些规则吗?理想情况下,不要将我锁定在 SSH 连接之外(我可以进行物理访问,但我宁愿不这样做)。
编辑如果可以将来自一个帐户的所有出站流量限制到一个接口,我可以将客户端拆分为两个用户。在纸面上似乎可能更容易。
是否可以通过 VPN 连接路由计算机的 SSH 服务,但允许所有其他数据通过 WAN 地址退出?需要使用什么样的 iptables 魔法来实现这一点?
SSH 数据 → 通过 VPN
所有其他数据 → 通过默认路由
我有一个带有这些接口的 Linux 机器:
eth0 Link encap:Ethernet HWaddr 14:da:e9:ef:75:7d
inet addr:176.9.85.182 Bcast:176.9.85.191 Mask:255.255.255.224
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.170.1.6 P-t-P:10.170.1.5 Mask:255.255.255.255
Run Code Online (Sandbox Code Playgroud)
eth0是我的互联网连接,tun0显然是一个 VPN。现在我想将特定用户生成的所有流量路由到 VPN。因为这是我第一次真正的路由问题,我解决我用Google搜索了很多,阅读这些:Routning基于用户,路由端口基地,基本VPN路由 和部分LARC。到目前为止,我一起对此感到困惑:
# Mark all traffic from user
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1002 -j MARK --set-mark 10
# Translate source address to VPN address
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# And just to be sure allow forwarding …Run Code Online (Sandbox Code Playgroud) 我在 Linux 机器上有一个 php/bash 应用程序,它有 1 个物理接口连接到例如出站网络服务器 123.123.123.123:80。我通过几个 openvpn 提供商来做到这一点。我有 tun 和 tap 提供程序,但我最喜欢的提供程序使用 tun。
其实我完全能够连续:
sudo route add 123.123.123.123 tun0sudo route del 123.123.123.123我在 .ovpn 配置文件中使用了“route-nopull”选项,以保持 Linux 机器可访问并允许同时进行 openvpn 连接。
现在我需要打开几个独立的请求,总是到出站网络服务器 123.123.123.123 :80。但是我的实际流程是串行的,在尝试第二个连接之前,我需要等待第一个连接关闭并清除自身。
我很确定我可以通过“假端口”来实现它。例如:
所以从概念上讲:
我只能代表概念,因为我几乎没有iptables的技能。如果你有不同的方法来实现结果,他们是受欢迎的。感谢您的阅读和帮助。