用 CentOS 7 纯手工打造属于自己的软路由服务器

用 CentOS 7 纯手工打造属于自己的软路由服务器,第1张

传送门:

自从了解了软路由这玩意之后,它强大的性能以及高自由度就一直让我羡慕不已。

但是作为“懂” Linux 以及计算机网络的我来说,如果直接使用现成的软路由系统总感觉低估了自己的能力……而且我家里也已经有了一台 Linux 服务器,要是能做到物尽其用那就最好了。

于是我很早就计划着搭建一台属于自己的软路由服务器。可惜由于懒癌发作,一直没有动手。直到半个月前,家里的旧路由器终于坏了,这时候我才着手去研究它……

前前后后折腾了一整天,总算是完工了!感觉收获了不少东西。想想还是很有必要把整个配置过程整理完然后给大家分享一下!

本文纯属个人学习经验分享,写得可能会比较乱,仅供参考。如有错误,可以的话请及时提出,谢谢!

由于我的服务器上只有一个网口,所以必须配合划分了 VLAN 的交换机,把它当作一台单臂路由才能实现上述功能。

下面我划分了三个 VLAN:

以下是交换机端口及 VLAN 的配置表:

以下是服务器网络接口的配置表:

至于“外网”的访问,由于我的云主机流量充足,所以我使用「绕过大陆 IP」模式。

「双 S」-local 监听的地址和端口为 0000:1080 , 「双 S」-redir 监听的地址和端口为 0000:1081 。

以下是“内外网”自动分流原理图:

下面把「可能被污染的域名」交由 dns2socks 解析。

该方案可以达到预期效果,但是仍有不完善的地方。

第一是没有在服务器上设置 QoS 来限制客人网络的网速(后来在交换机上设定了)。

第二是「可能被污染的域名列表」和「大陆 IP 地址集」无法实现自动更新。

不过现在就先这么用着吧,哈哈。

DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。

下面对DNS的工作流程及原理进行简要说明

DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts;若无结果,则client查看本地的DNS缓存服务器;若无结果,则查找所属域的首选DNS服务器;若此时本地首选DNS服务器仍无法解析,则会想根域名服务器进行查询或选择转发解析请求。

DNS的查询规则:递归式查询,即client向支持递归查询的DNS Server发出解析请求,则自DNS服务器不论是自身直接解析还是无法解析想根发出请求,总会由其向client返回一个结果;迭代式查询,即接收client解析请求的DNS Server,若其能够解析则直接返回结果,若其不能解析将把解析请求交给其他DNS服务器,而不是自己亲自将解析过程完成。

所谓的“根”服务器:根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。

DNS记录的类型:

A:Address 域名向ip地址转换的记录;

PTR:Printer ip地址向域名转换的记录;

NS:代表域内的dns服务器;

MX:代表域内的邮件服务器;

CNAME:域名的别名;

SOA:start of authority用于标示域内主DNS服务器。

提供DNS服务的软件:BIND即Berkeley Internet Name Domain有加州大学伯克利分校研发是当今提供dns服务应用最广的软件。

下面让我们进入正题,以下内容包括:DNS的缓存服务器、主/从服务器、子域授权、转发以及视图的配置步骤。

DNS缓存服务器

Ps:为了更好的体会和理解dns的配置文件和域解析文件,作者在此只安装bind包,以手动编辑的方式生成这几个必须的文件。

1安装bind包

yum install bind

2创建住配置文件/etc/namedconf

options {

directory "/var/named"; #告知工作目录

};

zone “” IN {

type hint; #声明根域

file "namedca"; #根信息存放文件

};

zone "localhost" IN { #本地正解定义

type master; #类型为master

file "localhostzone"; #正解文件名

};

zone "00127in-addrarpa" IN { #本地反解定义

type master;

file "namedlocal"; #反解文件名

};

chown :named /etc/namedconf

#修改属组给named

3创建3个解析文件

namedca

dig -t NS > /var/named/namedca

#向跟服务器发起查询并重定向到目标文件

localhostzone

vim localhost zone

$TTL 86400

#默认的ttl值

@ IN SOA localhost adminlocalhost (

#主DNS服务器localhost

2011081601

#时间+序列号01

1H

#刷新时间:每隔多久来master查询更新

10M

#重试时间间隔

7D

&n

服务器说白了就是 一台安装了对应处理程序的普通电脑

一般网游,服务器上只是进行数据的处理,并不是会创建地图,比如你进行一个攻击操作,把数据传送到服务器,服务器进行计算(伤害多少,是否暴击,最终伤害,命中了谁,扣血),把这些数据返回客户端,客户端根据得到的数据进行视觉显示

单机游戏和网游类似,但是在客户端内内置了一个服务器,你的数据在本机服务器进行计算,并返回本机客户端进行显示,联机时,队友的数据传送到你本机的服务器进行计算,然后返回队友的客户端进行显示

简单说,普通电脑上 安装服务器软件 后,这台电脑就可以是一个服务器

你要把客户端和服务端分开看,服务器就是处理数据的软件。常说的游戏程序(客户端)就是显示数据的软件。

网游客户端在本地,服务端在官方服务器上

单机游戏,客户端在本地,服务端包含在客户端内

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 用 CentOS 7 纯手工打造属于自己的软路由服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情