
https://blog.csdn.net/qq_42818882/article/details/123580237?spm=1001.2014.3001.5501
了解DNS服务
DNS(Domain Name Service,域名服务)是 Inter/Intranet 中最基础也是非常重要的一项服务,它提供了网络访问中域名和IP地址的相互转换。
案例环境及需求
某高校组件了校园网,为了使校园网中的计算机简单快捷地访问本地网络及Internet上的资源,需要在校园网中架设一台NDS服务器复制long.com域的域名解析工作。DNS服务器的FQDN为dns.long.com,IP地址为 192.168.10.1.要求为以下域名实现正反向域名解析服务。

1.确认VMnet8虚拟网卡是否开启

2.将虚拟机网络连接方式设置为NAT模式

3.首先在软件左侧选中要配置DNS服务器的虚拟机,点击软件首页左上角编辑->虚拟网络编辑器。

4.如果右下角出现“需要具备管理员特权才能修改网络配置”的提示,则点击右下角更改设置后等待页面刷新。(没有此提示则执行下一步操作)。

5.选中名称为:VMent8的虚拟网卡,页面下方子网IP填写为:192.168.10.0
子网掩码填写为:255.255.255.0

6.点击NAT设置

7.将网关IP更改为 192.168.10.5后点击右下角确定按钮

8.点击DHCP设置

9.起始IP地址更改为:192.168.10.1,结束IP地址更改为:192.168.10.254后点确定。

10.上述设置更改完成后先点击应用然后等待网络重启完毕后再点击确定即可。

11.开启Centos虚拟机后点击虚拟机桌面右上角网络图标->有线 已连接->有线设置

12.在弹出的界面点击右下角的小齿轮图标。

13.在左侧栏选择IPv4,地址更改为手动并输入以下内容:
地址填写为:192.168.10.1
子网掩码为:255.255.255.0
网关设为:192.168.10.5
DNS服务器设置为:192.168.10.5

14.检查红框区域信息是否变化,如果没有变化则关闭有线连接按钮后再次点击打开即可。

15.打开虚拟机终端并输入如下命令
[root@RHEL7-1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 //修改虚拟网卡配置

16.输入如下命令测试网络是否通畅
[root@RHEL7-1 ~]# ping www.baidu.com

在Linux下架设DNS服务器通常使用BIND(Berkeley Internet Name Domain)程序来实现,其守护进程是named。
子任务 1 安装BIND软件包
一.安装BIND软件包
(1).使用yum命令安装BIND服务
[root@RHEL7-1 ~]# yum clean all //安装前先清楚缓存
[root@RHEL7-1 ~]# yum install bind bind-chroot -y //执行安装命令
若上一步操作出现如下图所示情况是因为yum处于锁定状态,则输入图片下方命令后再次安装即可。

[root@RHEL7-1 ~]# rm -f /var/run/yum.pid //删除进程pid
注意安装期间切勿乱动鼠标键盘等待出现如图“完毕!”

(2)安装完成后查询软件是否安装完全。
[root@RHEL7-1 ~]# rpm -qa|grep bind
bind-export-libs-9.11.4-26.P2.el7_9.9.x86_64
bind-license-9.11.4-26.P2.el7_9.9.noarch
bind-chroot-9.11.4-26.P2.el7_9.9.x86_64
keybinder3-0.3.0-1.el7.x86_64
bind-libs-lite-9.11.4-26.P2.el7_9.9.x86_64
bind-9.11.4-26.P2.el7_9.9.x86_64
bind-utils-9.11.4-26.P2.el7_9.9.x86_64
rpcbind-0.2.0-42.el7.x86_64
bind-libs-9.11.4-26.P2.el7_9.9.x86_64
1.编辑全局配置文件/etc/named.conf文件
[root@RHEL7-1 ~]# vim /etc/named.conf

2.配置主配置文件named.rfc1912.zones
[root@RHEL7-1 ~]# vim /etc/named.rfc1912.zones
添加入下图所示正向解析区域

zone "long.com" IN {
type master;
file "long.com.zone";
allow-update { none; };
};
输入完成后保存退出即可
3.修改bind的区域配置文件
[root@RHEL7-1 ~]# cd /var/named/ //进入到正向区域文件位于的的/var/named文件夹下
[root@RHEL7-1 named]# cp -a named.localhost long.com.zone //为了编辑方便,将样本文件named.localhost 复制到long.com.zone
[root@RHEL7-1 named]# vim long.com.zone //对long.com.zone编辑修改
按照如下图所示信息配置

$TTL 1D
@ IN SOA long.com. root.long.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS long.com.
A 192.168.10.1
AAAA ::1
MX 10 mail.long.com.
dns A 192.168.10.1
mail A 192.168.10.2
slave A 192.168.10.3
www A 192.168.10.4
ftp A 192.168.10.20
web CNAME www.long.com.
设置完成后保存退出即可
4.开启named服务
[root@CwcEdu006 ~]# systemctl start named
5.将虚拟机的DNS更改为192.168.10.1



更改好后再次查看红框区域信息是否变化,如果没有变化则关闭有线连接按钮后再次点击打开即可。

//在主配置文件named.zones 中添加反向解析区域
[root@RHEL7-1 ~]# vim /etc/named.rfc1912.zones

zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.zone";
allow-update { none; };
};
输入完成后保存退出即可
1.创建并配置 192.168.10.zone反向区域文件
[root@RHEL7-1 ~]# cd /var/named/ //进入到正向区域文件位于的的/var/named文件夹下
[root@RHEL7-1 named]# cp -a named.loopback 192.168.10.zone //为了方便编辑,可将样本文件named.loopback复制到192.168.10.zone
[root@RHEL7-1 named]# vim 192.168.10.zone //对192.168.10.zone编辑修改
按照如下图所示配置

$TTL 1D
@ IN SOA long.com. root.long.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS long.com.
A 192.168.10.1
MX 10 mail.long.com.
AAAA ::1
1 PTR dns.long.com.
2 PTR mail.long.com.
3 PTR slave.long.com.
4 PTR www.long.com.
20 PTR ftp.long.com.
配置完成后保存退出
2.设置防火墙放行 设置主配置文件和区域文件的属组为named
[root@RHEL7-1 named]# firewall-cmd --permanent --add-service=dns //设置防火墙对dns服务放行

原因:没有开启防火墙
#解决办法:启动防火墙服务
[root@RHEL7-1 named]#systemctl start firewalld
[root@RHEL7-1 named]#firewall-cmd --reload //防火墙重新加载配置
[root@RHEL7-1 named]#chgrp named /etc/named.conf /etc/named.rfc1912.zones //设置主配置文件的属组为named
[root@RHEL7-1 named]#chgrp named long.com.zone 192.168.10.zone //设置区域文件的属组为named
3.重启named服务并加入到开机自启
[root@CwcEdu006 ~]# systemctl restart named //重启DNS服务
[root@CwcEdu006 ~]# systemctl enable named //将DNS服务加入到开机自启
[root@RHEL7-1 named]# nslookup

[root@CwcEdu006 ~]# nslookup
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b