在Linux系统中,设置网关是网络配置的重要部分,它允许系统与其他网络或互联网通信。以下是在Linux中设置网关的详细步骤和方法。

临时设置网关

Linux设置网关:操作步骤与注意事项

1. 查看当前路由表

bash

route -n

2. 设置网关

bash

route add default gw <网关IP地址>

3. 验证设置

bash

route -n

注意:这种设置在系统重启后将失效。

永久设置网关

1. 列出可用的网络连接

bash

nmcli connection show

2. 修改网络连接配置

bash

nmcli connection modify <连接名称> ipv4.gateway <网关IP地址>

3. 激活更改

bash

nmcli connection up <连接名称>

这种设置在系统重启后仍然有效。

使用ip命令设置网关

1. 查看默认网关设置

bash

ip route list

2. 删除默认网关

bash

sudo ip route delete default

3. 添加默认网关

bash

sudo ip route add default via <网关IP地址> dev <网络接口>

例如:

bash

sudo ip route add default via 192.168.1.1 dev enp0s3

4. 使更改持久化

在Ubuntu系统中,可以使用`netplan`命令和配置文件。编辑`/etc/netplan/01-network-manager-all.yaml`文件,添加以下内容:

yaml

ethernets:

enp0s3:

dhcp4: no

addresses:

  • 192.168.1.10/24
  • gateway4: 192.168.1.1

    nameservers:

    addresses:

  • 8.8.8.8
  • 8.8.4.4
  • 保存文件并关闭编辑器,然后应用更改:

    bash

    sudo netplan apply

    如果想要在应用更改之前测试更改,可以使用`netplan try`命令:

    bash

    sudo netplan try

    按“Enter”键提交更改。

    其他相关命令

  • 查看网卡信息
  • bash

    ifconfig -a

  • 启动和关闭网卡
  • bash

    ifconfig eth0 up

    ifconfig eth0 down

  • 使用ifconfig配置IP地址
  • bash

    ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.1.255

  • 在一张网卡上配置多个IP(常用于配置浮动IP)
  • bash

    ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.1.255

  • 添加静态路由
  • bash

    route add -net 目标网络 netmask 子网掩码 gw 网关地址

  • 删除静态路由
  • bash

    route del -net 目标网络 netmask 子网掩码 gw 网关地址

  • 开启IP转发
  • bash

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

  • 配置SNAT(如果想让内网中的主机访问外网)
  • bash

    iptables -t nat -A POSTROUTING -s 内网地址/掩码 -j SNAT --to-source 公网IP地址

  • 配置DNAT(如果想让外部主机访问内部主机)
  • bash

    iptables -t nat -A PREROUTING -d 公网IP地址 -p tcp --dport 端口号 -j DNAT --to-destination 内部主机IP:端口号

  • 配置端口映射
  • bash

    iptables -t nat -A PREROUTING -p tcp --dport 原始端口号 -j REDIRECT --to-port 目标端口号

  • 限制访问速率
  • bash

    tc qdisc add dev 网卡名 root handle 1: htb default 10

    tc class add dev 网卡名 parent 1: classid 1:1 htb rate 限速值 burst 15k

    tc filter add dev 网卡名 parent 1: protocol ip prio 100 handle 1 fw flowid 1:1

    iptables -A FORWARD -s 源IP地址/掩码 -j MARK --set-mark 1

  • 配置负载均衡
  • bash

    iptables -t nat -A PREROUTING -p tcp --dport 目标端口号 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 内部主机1:端口号

    iptables -t nat -A PREROUTING -p tcp --dport 目标端口号 -m statistic --mode nth --every 2 --packet 1 -j DNAT --to-destination 内部主机2:端口号