首先创建两张路由表,只需要添加到相应的文件中即可,Linux一共支持255个路由表,rt_tables文件中默认已经存在了三张路由表,分别是:
 
255    local
 
254    main
 
253    default
 
[root@localhost ~]# echo "10  cnc" >> /etc/iproute2/rt_tables
 
[root@localhost ~]# echo "20  cernet" >> /etc/iproute2/rt_tables
 
注意:路由表前面的数字只是编号并不代表优先级,路由表没有优先级,只有策略规则才有优先级。
 
以下配置内容每次重启系统后都会消失,所以要把脚本设置为随系统一块启动。
 
######################配置脚本###############################
 
#!/bin/bash
#加载iptables的nat和filter模块,iptables服务最好设置成在开机时自动运行
modprobe iptable_nat
modprobe iptable_filter
 
#打开Linux内核包转发功能
echo "1"  > /proc/sys/net/ipv4/ip_forward    
 
#配置接口的IP地址,并激活接口
#eth0连接联通线路,eth1连接教育网线路,eth2下连三层交换机
#这里使用iproute2的新命令来配置IP,不在使用旧的命令如:ifconfig
ip address add 115.158.113.164/25 dev eth0
ip link set dev eth0 up
ip address add 10.212.46.100/24 dev eth1
ip link set dev eth1 up
ip address add 10.10.10.1/30 dev eth2
ip link set dev eth2 up
 
#向路由表中添加路由
#向cnc路由表中添加一条默认路由
ip route add default via 115.158.113.129 table cnc
#向cernet路由表中添加一条默认路由
ip route add default via 10.212.46.1 table cernet
 
#向主路由表中添加指向内部网段的路由,不然数据包反回时找不到路由信息
ip route add 192.168.100.0/24 via 10.10.10.2 table main
ip route add 192.168.200.0/24 via 10.10.10.2 table main
 
#设置路由规则rule,注意规则是按优先级来执行的。
#所有目的地访问115.158.119.0/25网段的用户都走cernet线路出去。
ip rule add from 0.0.0.0/0 to 115.158.119.0/25 table cernet pref  99
#网段192.168.100.0/24的用户都走联通线路出去,优先级设置为100
ip rule add from 192.168.100.0/24 table cnc pref 100
#网段192.168.200.0/24的用户都走教育网线路出去,优先级设置为101
ip rule add from 192.168.200.0/24 table cernet pref 101
 
#刷新路由表,使新配置的路由生效
ip route flush cache
 
#按求对数据包进行NAT转换
#把192.168.100.0/24网段的用户的源IP转换成联通线路接口的IP
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to 115.158.113.164
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to 10.212.46.100
 
######################结束##################################

linux服务器做网关的更多相关文章

  1. 用linux主机做网关搞源地址转换(snat)

    一.原理图  二.环境 外网  A:192.168.100.20 (vmnet1) 网关  B:192.168.100.10 (vmnet1)     192.168.200.10 (vmnet2) ...

  2. MultipartFile 图片上传到Linux服务器Tomcat下的webapps目录

    第一次接触 linux 服务器,做图片上传的时候遇到了些坑,搞了些天总算成功了,记录一下 /** * 上传图片 * * @param request * @param file * @return * ...

  3. 干货|Linux平台搭建网关服务器

    概述 集群中一共10台服务器组成了局域网环境,但其中只有一台有外网网卡可以访问互联网.现要求另外9台服务器通过这台主机进行互联网访问.  实验环境介绍 利用iptables搭建网关服务器,即通过SNA ...

  4. linux服务器操作系统,在相同环境下,哪个做lamp服务器更稳定点?哪个版本更稳定?

    随着国内WEB服务越来越多,如何才能选择一个合适的linux服务器操作系统?在国内用的最多的好像是红帽子系列也就是red hat系列,但有些版本缺乏稳定性.新手在选择操作系统的时候最好只用偶数版本,还 ...

  5. Gravitational Teleport 开源的通过ssh && kubernetes api 管理linux 服务器集群的网关

    Gravitational Teleport 是一个开源的通过ssh && kubernetes api 管理linux 服务器集群的网关 支持以下功能: 基于证书的身份认证 ssh ...

  6. 为Linux服务器伪装上Windows系统假象

    网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击. 通过伪装Linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一 ...

  7. Linux服务器操作系统

    Linux服务器操作系统 今日大纲 ●    服务器操作系统的系列.Linux的主流产品.虚拟机软件 ●    安装linux ●    linux基本命令 ●    用户管理及权限(多用户) ●   ...

  8. Linux服务器性能评估与优化(二)

    网络内容总结(感谢原创) 1.Linux内核参数优化 内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系 ...

  9. linux服务器宕机分析/性能瓶颈分析

    linux服务器宕机分析/性能瓶颈分析   服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last ...

随机推荐

  1. 使用CocoaPods开发并打包静态库

    Cocoapods作为OS X和iOS开发平台的类库管理工具,已经非常完善和强大.通常我们用pod来管理第三方开源类库,但我们也极有可能会开发一个用pod管理依赖关系的静态类库给其他人使用,而又不愿意 ...

  2. FFT小总结

    FFT实质上做的是循环卷积,ck=sigam(ai*bj,(i+j)%n=k),其中n是倍长后的长度,所以我们有时候需要的只是普通的卷积,我们就需要把原数组倍长,再用FFT求卷积,由于高位都是0,所以 ...

  3. PathGradientBrush类进行渐变颜色的填充

    private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; GraphicsPath gp ...

  4. 单元测试与Moq

    这个篇幅里面,记录单元测试与Moq模拟包的知识点. 单元测试 每一个模块,都应该有对应的单元测试.单元测试可以保证你的代码准确性,大大减少出现BUG的几率.一个好的单元测试,也是重构代码必不可少的部分 ...

  5. Day4-python基础之函数

    本次学习内容: 字典查询快的原因 字符编码 函数定义 局部变量.全局变量 返回值 嵌套函数 递归(二分查找) 三元运算 map lamba 函数式编程 高阶函数 内置函数 字典查询快的原因: 字典占用 ...

  6. 配置struts2+spring,springmvc

    Struts2+Spring整合 一.spring负责注入,struts2负责它自己的工作.这样不是很符合spring作为ioc容器的全部功能,不推荐. 二.spring负责全部bean和struts ...

  7. (转)解决bootstrap 模态框的页面抖动

    使用bootstrap时,往往会出现页面抖动的效果,使得用户体验十分不友好. Bootstrap为了让所有的页面(这里指内容溢出和不溢出)显示效果一样,采取的方法如下: 当Modal显示时,设置bod ...

  8. win7电脑怎么修改计算机用户名Administrator

    ----------------------------------- 首先,在开始中打开我的控制面板.----->>打开用户账户和家庭安全选项.----->>,继续点击用户账 ...

  9. hibernate UUID问题

    前言:hibernate对于字符串类型主键支持UUID主键生成策略,(号称是世界上唯一的字符串) 运行环境:运行环境:hibernate5.2,mysql5.6 一,使用hibernate给Strin ...

  10. Google Map API V3开发(3)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...