linux服务器做网关
首先创建两张路由表,只需要添加到相应的文件中即可,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服务器做网关的更多相关文章
- 用linux主机做网关搞源地址转换(snat)
一.原理图 二.环境 外网 A:192.168.100.20 (vmnet1) 网关 B:192.168.100.10 (vmnet1) 192.168.200.10 (vmnet2) ...
- MultipartFile 图片上传到Linux服务器Tomcat下的webapps目录
第一次接触 linux 服务器,做图片上传的时候遇到了些坑,搞了些天总算成功了,记录一下 /** * 上传图片 * * @param request * @param file * @return * ...
- 干货|Linux平台搭建网关服务器
概述 集群中一共10台服务器组成了局域网环境,但其中只有一台有外网网卡可以访问互联网.现要求另外9台服务器通过这台主机进行互联网访问. 实验环境介绍 利用iptables搭建网关服务器,即通过SNA ...
- linux服务器操作系统,在相同环境下,哪个做lamp服务器更稳定点?哪个版本更稳定?
随着国内WEB服务越来越多,如何才能选择一个合适的linux服务器操作系统?在国内用的最多的好像是红帽子系列也就是red hat系列,但有些版本缺乏稳定性.新手在选择操作系统的时候最好只用偶数版本,还 ...
- Gravitational Teleport 开源的通过ssh && kubernetes api 管理linux 服务器集群的网关
Gravitational Teleport 是一个开源的通过ssh && kubernetes api 管理linux 服务器集群的网关 支持以下功能: 基于证书的身份认证 ssh ...
- 为Linux服务器伪装上Windows系统假象
网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击. 通过伪装Linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一 ...
- Linux服务器操作系统
Linux服务器操作系统 今日大纲 ● 服务器操作系统的系列.Linux的主流产品.虚拟机软件 ● 安装linux ● linux基本命令 ● 用户管理及权限(多用户) ● ...
- Linux服务器性能评估与优化(二)
网络内容总结(感谢原创) 1.Linux内核参数优化 内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系 ...
- linux服务器宕机分析/性能瓶颈分析
linux服务器宕机分析/性能瓶颈分析 服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last ...
随机推荐
- ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...
- 下载imagenet2012数据集
摸索了一下,imagenet2012下载,跟大家分享一下 用迅雷会员加速都可以下载,有的用百度云也可以离线下载 http://www.image-net.org/challenges/LSVRC/20 ...
- vs创建项目模板和项模板
原文地址:https://msdn.microsoft.com/zhcn/library/xkh1wxd8(v=vs.140).aspx 如何:创建项目模板 Visual Studio 2015 ...
- PHP处理海量样本相似度聚类算法
catalogue . TF-IDF . 基于空间向量的余弦算法 . 最长公共子序列 . 最小编辑距离算法 . similar_text . local sensitive hash 局部非敏感哈希 ...
- Android Studio NDK初探
Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多. 本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发 ...
- 日常资料(TNB)
http://www.med66.com/html/2005/5/hu47563183418550025733.html http://www.guokr.com/article/192045/ ht ...
- POJ 1703 Find them, Catch them(带权并查集)
传送门 Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42463 Accep ...
- mysql关联表的复制
1. 复制被参照的表: CREATE TABLE clone_product_1 LIKE product_1; INSERT INTO clone_product_1 SELECT * FROM p ...
- 如何查看Maven项目中的jar包依赖树情况
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...
- Introduction - SNMP Tutorial
30.1 Introduction In addition to protocols that provide network level services and application progr ...