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;
    }
}

相关推荐

  1. Linux配置路由器

    2024-04-20 10:22:07       34 阅读
  2. 路由器配置DMZ主机映射

    2024-04-20 10:22:07       73 阅读
  3. 神州数码命令:路由器配置

    2024-04-20 10:22:07       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 10:22:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 10:22:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 10:22:07       82 阅读
  4. Python语言-面向对象

    2024-04-20 10:22:07       91 阅读

热门阅读

  1. Spring Boot 定时任务实现教程

    2024-04-20 10:22:07       35 阅读
  2. MyBatis

    MyBatis

    2024-04-20 10:22:07      25 阅读
  3. CDN的原理

    2024-04-20 10:22:07       33 阅读
  4. Git

    2024-04-20 10:22:07       33 阅读
  5. Python脚本传参 -h --help

    2024-04-20 10:22:07       35 阅读
  6. 【C++ 哈希应用】

    2024-04-20 10:22:07       35 阅读
  7. mysql根据datetime统计每日数据量

    2024-04-20 10:22:07       25 阅读
  8. web server apache tomcat11-09-JNDI Datasource

    2024-04-20 10:22:07       35 阅读
  9. web server apache tomcat11-08-JNDI Resources

    2024-04-20 10:22:07       38 阅读