在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:
gateway4: 192.168.1.1
nameservers:
addresses:
保存文件并关闭编辑器,然后应用更改:
bash
sudo netplan apply
如果想要在应用更改之前测试更改,可以使用`netplan try`命令:
bash
sudo netplan try
按“Enter”键提交更改。
其他相关命令
bash
ifconfig -a
bash
ifconfig eth0 up
ifconfig eth0 down
bash
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.1.255
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 网关地址
bash
echo 1 > /proc/sys/net/ipv4/ip_forward
bash
iptables -t nat -A POSTROUTING -s 内网地址/掩码 -j SNAT --to-source 公网IP地址
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:端口号