Linux配置为路由器

  1. 启用IP转发

确保Linux系统启用了IP转发。在/etc/sysctl.conf文件中,将net.ipv4.ip_forward的值设置为1:net.ipv4.ip_forward = 1
保存更改后,通过运行sudo sysctl -p命令使其生效。

  1. 置网络接口

确保已正确配置网络接口。你需要至少两个网络接口,一个连接到Internet,一个连接到你的局域网。

  1. :设置网络地址转换(NAT)规则。

假设Internet接口为eth0,局域网接口为eth1。
接下来使用不同的防火墙举例:

iptables

# 清除所有已有的iptables规则
iptables -F
# 删除所有自定义的iptables链
iptables -X

# 设置默认策略
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# 开启网络地址转换
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 允许局域网访问Internet的流量
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# 允许Internet访问局域网的已建立连接的流量
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# 保存配置
iptables-save > /etc/sysconfig/iptables

firewalld

# 将eth0接口划分到公共区域
firewall-cmd --zone=public --change-interface=eth0 --permanent
# 将eth1接口划分到受信任区域。
firewall-cmd --zone=trusted --change-interface=eth1 --permanent
# 启用转发
firewall-cmd --zone=public --add-masquerade --permanent
# 重新加载防火墙规则
firewall-cmd --reload

nftables
编辑/etc/nftables.conf

#!/usr/sbin/nft -f

table ip nat {
    chain prerouting {
        type nat hook prerouting priority 0;
    }

    chain postrouting {
        type nat hook postrouting priority 100;
        oif eth0 masquerade;
    }
}

table ip filter {
    chain input {
        type filter hook input priority 0;
    }

    chain forward {
        type filter hook forward priority 0;
        ct state { established, related } accept;
        iifname "eth1" ct state new accept;
        oifname "eth0" accept;
        reject;
    }

    chain output {
        type filter hook output priority 0;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值