首页 > 系统相关 >Linux配置软路由

Linux配置软路由

时间:2024-09-03 12:15:53浏览次数:5  
标签:sysctl IPv6 配置 outdev conf Linux net indev 路由

假设出口网口是end0,入口网口是end1

outdev=end0
indev=end1
# 子网不要与其他interface的IP重合
prefix=10.233.233

配置出口网口IP

#nmcli dev set $indev managed no
ip link set up dev $indev
ip addr add $prefix.1/24 dev $indev

配置DHCP

apt install isc-dhcp-server
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.$(date +%s%N)

cat > /etc/dhcp/dhcpd.conf <<EOF
option domain-name-servers 223.6.6.6;
option subnet-mask 255.255.255.0;
option routers $prefix.1;
subnet $prefix.0 netmask 255.255.255.0 {
  range $prefix.2 $prefix.254;
}

default-lease-time 600;
max-lease-time 7200;
EOF

systemctl restart isc-dhcp-server

223.6.6.6是阿里的DNS server。其他DNS server: https://www.zhihu.com/question/32229915/answer/3572478879

参考:https://wiki.archlinux.org/title/Dhcpd

开启转发

# 查看是否开启了转发
sysctl net.ipv4.ip_forward
# 开启转发
sysctl -w net.ipv4.ip_forward=1

配置NAT

iptables -t nat -A POSTROUTING -s $prefix.0/24 -o $outdev -j MASQUERADE

让防火墙不要拦截从indev到outdev的流量:

iptables -t filter -A FORWARD -i $indev -o $outdev -j ACCEPT

IPv6 NAT

一般认为IPv6是不需要NAT的。但是在类似校园网的环境,每个接入的IPv6地址都需要进行认证,这时候就可以用IPv6 NAT,只需要一个通过认证的IP就可以代理整个子网的流量。

# 子网前缀
prefix6=fd00:1
# 生成link local address,这样链路才能工作
sysctl -w net.ipv6.conf.$indev.addr_gen_mode=0

# 设置静态IP
ip -6 addr add $prefix6::1/64 dev $indev

# 开启IPv6转发
sysctl -w net.ipv6.conf.all.forwarding=1
# 接受router advertisements
sysctl -w net.ipv6.conf.$indev.accept_ra=2

ip6tables -t nat -A POSTROUTING -o $outdev -j MASQUERADE
ip6tables -t filter -A FORWARD -i $indev -o $outdev -j ACCEPT

标签:sysctl,IPv6,配置,outdev,conf,Linux,net,indev,路由
From: https://www.cnblogs.com/searchstar/p/18394294

相关文章

  • Linux的目录结构
    1.登录虚拟机用户名:root 密码:0412327右键打开终端二.Linux的基本命令ls 查看当前目录信息pwd   查看当前路径-->查看你在哪里? /root:主目录相当于手机里面home键 mkdir 创建目录,新建文件夹Shell命令格式: 命令+选项+路径(参数)      在......
  • Linux的基本命令
    1.linux的版本 Ubuntu、CentOS、Redhat、Debian、suse-Linux、鸿蒙(HarmonyOS)。鸿蒙系统是一款全新的面向全场景的分布式操作系统,以手机操作为主,链接汽车、智能音箱、可穿戴等设备的分布式操作系统。与Android等系统具有根本性不同,HarmonyOS创新多设备交互,让消费者操控多个......
  • 5分钟部署Prometheus+Grafana批量监控Linux服务器
    文章目录一键安装NodeExporter安装prometheus创建数据存储目录创建配置文件下载运行Prometheus安装Grafana创建数据目录下载运行Grafana配置Grafana监控Linux服务器登录首次登录后设置密码添加数据源选择prometheus填写prometheus地址导入模板辛苦您也关注下公众号,感谢!本文......
  • 让 Linux 拥有回收站:轻松找回误删文件的完美解决方案
    文章目录让Linux拥有回收站:轻松找回误删文件的完美解决方案方案设计编写`trash`脚本定期清理回收站总结辛苦您也关注下公众号,感谢!让Linux拥有回收站:轻松找回误删文件的完美解决方案在Linux系统中,使用rm命令删除文件后,文件通常会被直接从系统中移除,难以恢复。为了避......
  • 告别无进度等待:Linux系统中为cp和mv命令加上实时进度条
    文章目录告别无进度等待:Linux系统中为cp和mv命令加上实时进度条一、advcpmv简介二、advcpmv的优势三、安装advcpmv3.1前置准备3.2设置环境变量3.3下载并安装3.4手动安装步骤3.5配置别名四、使用advcpmv4.1查看帮助信息4.2实际操作五、总结辛苦您也关注下公众号,感谢!告......
  • 在Linux中使用C++调用Python程序
    为什么要用C++调Python我们训练部署CNN模型时,服务器用Pytorch测试的精度比我们部署端精度高0.5%。经过多方排查,发现是由于Pytorch预处理图片使用PIL进行图片读取和尺寸调整,但是部署端采用OpenCV进行图片读取和尺寸调整。两种实现方式实现的Resize操作差异非常大。为了快速完成项......
  • IntelliJ IDEA配置JDK
    一、新建项目前配置JDK1.File-->ProjectStructure 2.SDKs-->点击+号,在弹出框选择JDK的安装路径。 二、新建项目配置JDK1.File-->New-->Project 2.填写Name,Location,选择Language对应的JDK即可。  三、项目切换JDK在SDK下拉框选择对应的JDK。 ......
  • CentOS 7配置iSCSI共享存储案例
    案例说明:在CentOS7环境下,配置iscsi共享存储。操作系统版本:[root@node201KingbaseHA]#cat/etc/centos-releaseCentOSLinuxrelease7.9.2009(Core)集群架构:如下所示,node1和node2为集群节点:节点信息:[root@node201KingbaseHA]#vi/etc/hosts192.168.1.201node201......
  • PostgreSQL的安装与配置(包含多种可能遇到的报错或者无法安装问题)
    1.Windows安装1.官网下载安装包,EDB:Open-Source,EnterprisePostgresDatabaseManagement(enterprisedb.com) 2.按照提示步骤进行安装(文件路径很重要!!!)这是PostgreSQL的安装目录(自定义目录安装的一定要命名清楚,不要和后面的data混淆) 这个全选这个是存储数据的目录(不......
  • C# 配置文件相关方法
    `usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.IO;usingSystem.Reflection;classProgram{staticvoidMain(){//获取应用程序的根目录路径stringappDirectory=Path.GetDirectoryName(Assembly.GetExecutingAssembly()......