linux - 如何在linux中路由

标签 linux routes ip-address ip

我的 isp 有 20 个 ips。我将它们绑定(bind)到运行 centos 的路由器盒。我应该设置什么命令,以什么顺序设置,以便我 lan 上的其他盒子,基于它们的 mac 地址或 192 ips,我可以让它们在特定的 ips 上路由出我的盒子。例如我想让 mac addy xxx:xxx:xxx0400 出去 72.049.12.157xxx:xxx:xxx:0500 出去 72.049.12.158.

最佳答案

使用iptables设置NAT

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 72.049.12.157
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 72.049.12.158

这会导致 192.168.0.0 子网上的所有 ip 都具有 72.049.12.157 的“外部”ip,而 192.168.1.0 子网的“外部”IP 为 72.049.12.158。对于 MAC 地址匹配,使用 -m mac --mac-source MAC-ADDRESS 代替 -s 192.168.0.0/24 参数

不要忘记激活 ip 转发:

cat /proc/sys/net/ipv4/ip_forward

如果上面的代码返回一个 0 那么它就不会工作,你必须启用它。不幸的是,这是特定于发行版的,我不了解 CentOS。
要快速破解,请执行以下操作:

echo 1 > /proc/sys/net/ipv4/ip_forward

关于linux - 如何在linux中路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/119609/

相关文章:

linux - 错误 "extra characters at the end of g command"

javascript - Angular RouteParams 发送 ID

mysql - 如果我使用 2 个路由器,如何连接到 mysql 服务器

c - 如何在Linux中的C编程中使用其IP地址获取远程主机的MAC地址

php - 在没有网络服务器的情况下在 linux 上使用 php 从文件夹发送电子邮件

python - ssh 到 linux 服务器,不使用 ps 命令从 python 列出 PID

c - 查找可用堆空间背后的逻辑

javascript - Angular.js ng-view忽略路由

asp.net - 带破折号的路由值

apache - 需要拒绝除我之外的所有 IP 访问站点并显示友好错误