Linux多网卡外网访问策略路由设置

Linux多网卡外网访问策略路由设置,第1张

如果一个linux服务器有三个口接三个不同的网络,对应的网络信息是如下

传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问网通走网通,那么配置是网关只能够配置一个。

比如以电信为主的,那么网关就只设置电信的1.1.1.254,而针对网通和教育网设置不同的路由,路由下一跳指向网通和教育网对应的 网关。

如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问网通和教育网的ip,网通用户会无法访问电信和教育网的ip。而且只有设置了默认路由的那个网络能被跨网络访问,其它两个网络只能被本子网的设备访问。

要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立三个路由表。

用 ip route show 可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自 /etc/iproute2/rt_tables ,这里先在这个配置文件里面添加三个不同的路由表表名,

之后建立这三个路由表的内容,因为这三个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要每个路由表里面建立默认网关即可。

之后再加上三条规则,使来自不同的口的走不同的路由表

至此无论是电信还是网通还是教育网用户,访问三个ip的任意一个地址都能够连通了。即便是服务器上本身的默认路由都没有设置,也能够让外面的用户正常访问。三个网络的IP都能被跨网络访问了。

命令汇总:

1、撤销多余的服务根据机器的用途,很多服务是不需要的。要是Linux只用作桌面,就不需要sendmail、httpd和另外许多服务。如果你的服务器只是Web服务器,也可以关掉许多服务。为此,可转到管理菜单,检查服务项目。只需撤销所有不想启动的服务选项。

2、使用轻型窗口管理器代替GNOME或KDE我插入小脚印窗口管理器的原因是——它们大幅度减少图形(界面)启动时间。代替不得不额外等待启动GNOME或KDE的30到60秒。

3、确保内网应用正常。明确内网LINUX访问地址,并确保LINUX服务器的SSH服务正常。

4、在被访问端LINUX服务器上安装nat123客户端Linux,并使用它。登录网站,左侧用户中心,添加端口映射。选择全端口映射类型。填写内网LINUX固定地址端口,和外网访问的域名。可以使用自己的域名,也可以使用二级域名。

5、外网访问端安装nat123客户端并使用访问者。

首先需要将你的web服务器搭建好,然后需要做NAT,我这里有我的一个做NAT的笔记,分享给你

NAT

拓扑结构图:

要求:

1.内网能够ping通外网地址,并且成功访问外网中的web服务;

2.外网能够访问内网的ftp服务。

步骤:

一:内网服务器配置

1.在内网中设置好ip地址,网关和DNS均为NAT服务器内网口地址,并搭建好ftp服务,此处略

二:NAT服务器配置

1.在NAT只能中添加一块网卡作为 外网卡,并设置好ip地址

2.开启NAT服务器的路由功能

[root@c2 ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1              //将0改为1

[root@c2 ~]# sysctl -p                //永久生效

3.配置防火墙(必须按照以下循序配置,否则配置完成后不能拼通外网,需配置第二次)

#iptables-X

#iptables-t nat -X

#iptables --flush

#iptables -t nat --flush

//以上为重置链表的命令

#iptables-t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 202.10.10.12

//这条命令是将内网192.168.1.0/24的源地址映射为NAT服务器的外网口地址,eth1为外网卡

# iptables -t nat -A PREROUTING -p tcp--dport 21 -j DNAT --to 192.168.1.11

# iptables -t nat -A PREROUTING -p tcp--dport 20 -j DNAT --to 192.168.1.11

//这两条命令是发布内务的ftp服务

或者:

# iptables -t nat -A PREROUTING -p tcp -d 202.10.10.12--dport 21 -j DNAT --to 192.168.1.11

# iptables -t nat -A PREROUTING -p tcp -d 202.10.10.12--dport 20 -j DNAT --to 192.168.1.11

#/etc/init.d/iptablessave

#/etc/init.d/iptablesrestart

验证:

内网访问外网的web服务:

[root@c1 ~]# curl 202.10.10.13

web

外网访问内网的ftp服务(外网的防火墙一定要关闭,否则ls查看目录时会出错,或者打开外网的20号端口新建链接的也可以)#

[root@c3 ~]# ftp 202.10.10.12

Connected to 202.10.10.12 (202.10.10.12).

220 (vsFTPd 2.2.2)

Name (202.10.10.12:root): ftp01

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>ls

227 Entering Passive Mode(192,168,1,11,93,1).

ftp: connect: Network isunreachable     //列不出内容是因为进入了passive模式

ftp>passive                                                      //用passive命令切换passive模式和active模式

Passivemode off.

ftp>ls

200 PORT command successful. Consider usingPASV.

150 Here comes the directory listing.

226 Directory send OK.

ftp>

补充:

删除防火墙中配置的记录

[root@c2 ~]# iptables -t nat  -L POSTROUTING -n --line-number   //列出记录和记录序号

[root@c2 ~]# iptables -t nat -D POSTROUTING1                 //根据序号删除记录

你将内网的ftp服务换成web服务就可以了,主要是弄懂NAT的原理,将内部服务通过DNAT发布到外网


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8419496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存