ftp服务器 课程设计

ftp服务器 课程设计,第1张

这个通过java可以实现,具体需求你发下我邮箱吧184172133@qq.com

java语言:

public class FtpTest {

private FTPClient ftpClient

/**

* 链接ftp

* @param ip 地址

* @param port 端口

* @param user 用户名

* @param password 密码

* @param path 路径

*/

public void connectServer(String ip,int port,String user,String password,String path) {

try {

this.ftpClient = new FTPClient()

FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_NT)//适用的系统

config.setServerTimeZoneId(TimeZone.getDefault().getID())//获取主机默认时区

this.ftpClient.setControlEncoding("GBK")

this.ftpClient.configure(config)

this.ftpClient.connect(ip, port)

int reply = this.ftpClient.getReplyCode()

//ftp服务器链接响应,已2开头通过

if(!FTPReply.isPositiveCompletion(reply)) {

//响应异常断开连接

System.out.println("链接失败!")

this.ftpClient.disconnect()

}

this.ftpClient.login(user, password)

this.ftpClient.changeWorkingDirectory(path)

this.ftpClient.setFileType(FTPClient.FILE_STRUCTURE)//设置文件传输类型

System.out.println("登陆成功,当前所在目录:"+this.ftpClient.printWorkingDirectory())

} catch (SocketException e) {

System.out.println("链接FTP服务器失败!")

e.printStackTrace()

} catch (IOException e) {

System.out.println("登陆FTP服务器失败!")

e.printStackTrace()

}

}

其他更多的你发我邮箱里,我看看需求

一般购买大品牌的服务器才有相应的驱动程序:

硬件:4核CPU,4G的内存,主板带RIAD,512G内存,

安装与配置Web服务器

Apache服务器源代码安装:

http://httpd.apache.org

Apache RPM软件下载:

http://updates.redhat.com

Apache模块和MPM可使用类型的更详细介绍:

http://httpd.apache.org/docs-2.0/mod/N

Apache对模块的使用有两种方法,一种是将其永久性地编译Apache内核中,即采用静态编译;另一种是采取动态编译,将其编译成DSO(Dynamic shared object,动态共享对象)模块,DSO模块的存储是独立于内核的,可被内核在需要时调用,具体是由mod_so模块提供的运行时配置指令(LoadModule)来实现的,若在编译中包含有任何动态模块,则mod_so模块会被自动包含进内核。若仅希望内核能够支持装载DSO模块,但不实际编译任何动态模块,则在编译配置时就明确指定--enable-so配置参数。

还提供了多道处理模块MPMs(multi-processing modules),编译过程中必须包含一个且只能有一个MPM,编译时系统会根据平台类型自动选择使用默认的MPM,也可在configure命令行中配置:

--with-mpm=要使用MPM类型

模块的指定方法:

1.静态编译模块到内核中,如编译包含mod-sll和mod_rewrite(去掉mod_)模块:

./configure --enable-module="ssl rewrite"或./configure --enable-sll --enable-rewrite

动态编译模块为DSO:

./configure --enable-mods-shared="ssl rewrite"或./configure --enable-rewrite=shared

模块说明:

httpd -l //查看httpd进程中包含哪些模块;

httpd -S //检查虚拟主机的配置是否存在语法错误;

httpd -f //启动httpd守护进程时,加载配置文件;

mod_deflate模块允许支持此功能的浏览器,在请求的页面内容发送前进行压缩,以节少网络带宽。

mod_vbost_alias模块支持虚拟主要的动态配置。

chkconfig --level 235 httpd on

chkconfig --list httpd

service httpd start

service httpd restart

service httpd reload//重新装载httpd.conf(不重启服务器)

./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=prefork --enable-modules="setenvif rewrite deflate vhost_alias"

#apachectl start//启动Apache服务器;

#apachectl restart

#echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local //自动启动

#httpd -t //检查配置文件httpd.conf

#apachect configtest //检查配置文件httpd.conf

#ServerRoot apache安装路径//设置服务器的根目录;

#ServerName 完整的域名[:端口号] //设置服务器用于重定向(端口)和虚拟主机;

#Listen [IP地址]端口号 //告诉服务器接受来自指定端口或者指定IP地址的某端口的请求;

Listen 80

Listen 61.186.160.104:8088

#ServrAdmin E-mail地址 //设置Web站点管理员的E-mail地址,当产生错误时(如指定的网页找不到),服务器返回给客户端的

错误信息中将包含该邮件地址,以告诉用户该向谁报告错误;

#DocumentRoot 目录路径名//设置Web服务器站点根目录;

DocumentRoot /usr/local/apache2/htdocs

#ErrorDocument 错误号 所要显示的网页 //定义当遇到错误时,服务器将给客户端什么样的回应,通常是显示预设置的一个错误页面;

grep ErrorDocument /etc/httpd/conf/httpd.conf //httpd.conf中一些对不同错误的响应信息;

#DirectoryIndex index.php index.htm index.html default.htm //设置站点主页文件的搜索顺序;

#user nobody //设置服务器以哪种(nobody)用户身份来响应客户端的请求;

#Group # -1//设置服务器以哪种(nobody)用户身份来响应客户端的请求;nobody用户权限较小。

#AddDefaultCharset GB2312 //指定默认的字符集;

#TimeOut //设置连接请求超时的时间(秒),超时将断开;

#KeepAlive //用于启用持续的连接或者禁用;KeepAlive On|Off

#MaxKeepAliveRequests //设置在一个持续连接期间允许的最大HTTP请求数目;

#KeepAliveTimeout //设置在关闭TCP连接之前,等待后续请示求的秒数;一旦接受请求建立了TCP连接后则开始计时;

#PidFile logs/httpd.pid//指定存放httpd主(父)进程号的文件名;

日志配置命令:

#ErrorLog //指定服务器存放错误日志文件的位置和文件名;

#LogLevel //设置记录在错误日志中的信息的详细程序;

emerg 紧急,系统将无法使用;

alert 必须立即采取措施;

crit致命情况;

crror 错误情况;

warm警告;

info普通信息;

notice 一般重要情况;

debug 出错级别信息;

http://127.0.0.1//测试Apache是否正常运行

Test Page

This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.

#rpm -q httpd

#rpm -Uvh http-2.0.40-21.11.i386.rpm

目录说明:

/etc/httpd/conf//Apache服务器的配置文件httpd.conf

/etc/rc.d/init.d/ //Apache服务器启动脚本安装,httpd

/var/www/html //Web站点根目录;

/usr/bin //Apache软件包提供的可执行程序安装在该目录下。

/etc/httpd/logs//日志文件

htdocs //默认Web站点的根目录,可通过配置文件httpd.conf进行设置或更改;

cgi-bin//CGI脚本目录;

bin//apachectl启动脚本会自动设置在某些操作系统下,正常运行httpd所需的环境变量;

httpd守扩进程被调用后做的第一件事就是读取httpd.conf,并根据其配置项来配置当前Web服务器;

httpd.conf 分为三部分(section),

第一部分为全局环境设置,主要用于设置ServerRoot、主进程号的保存文件、

对进程的控制、服务器侦听的IP地址、端口、要装载的DSO模块

第二部分是服务器的主要配置指一位置;

第三部分用于设置和创建虚拟主机;

Listen 80 //Web服务器绑定在80端口;

DocumentRoot //设置Web站点的根目录等;

访问控制指令:

<Directory /usr/local/*/htdoes> //<Directory>使指定的目录及其子目录有效;不可嵌套。目录名可使用“*”或“?”通配符,

<Files ~“\.ht">//作用于指定的文件,则不管该文件实际存在子哪个目录,允许所有主机访问位于任何目录下的.ht开的文件

Order allow,deny //指定allow和deny语句,哪一个被执行;允许、禁止访问主机。

Allow from all//允许所有主机访问;也可以是IP地址。

<Files>

</Directory>

<Location /assistant> //针对URL地址进行访问限制,不是文件系统;

Order deny,allow //

Deny from all

Allow from 61.186.160.105

</Location>

Order deny,allow //若主机没有被特别指出拒绝访问,则该资源被允许访问。

Order allow,deny //若主机没有被特别指出允许访问,则该主要将被拒绝访问该资源。

Order mntual-failure //只有那些在allow语句中被指定,同时又没有出现在deny语句的主机,才允许访问。若主机在两条指

令中都没有出现,则将被拒绝访问;

*、? //*代表任意个字符,?代表一个任意的字符;

<DirectoryMatch> //指定目录名时,可直接使用正则表达式;<Directory>若要使用正则表达式,则需要在正则表达式前加“~"

<FilesMatch> //可直接使用正则表达式来通配多个文件;

AccessFileName .htaccess//.htaccess分布式配置文件,在该文件中也可放置一些配置指令,以作用于该文件所在的目录以及

其下的所有子目录。搜寻.htaccess文件会降低系统性能;

<Directory />

AllowOverride None //禁止系统查找.htaccess文件;

Options FollowSymLinks //Options:控制在特定目录中将使用哪些服务器特性;

</Directory>

Options命令可用的选项:

None 不启用任何额处特性;

All 除MultiViews之外的所有特性,默认设置;

ExecCGI 允许执行CGI脚本;

FollowSymLinks 服务器允许在此目录中使用符号连接。在<Location>段中无效

Includes 允许服务器端包含SSI(Server-side includes)

IncludesN()EXEC允许服务器端包含,但禁用#exec和#exec CGI命令。但仍可以从ScriptAltase目录使用#include虚拟CGI脚本;

Indexes 如果一个映射目录的URL被请求,而此目录中又没有DirectoryIndex(如:index.html),那么服务器返回一个

格式化后的目录列表;

MultiViews 允许内容协商的多重视图;

SymLinksIfOwnerMatch 服务器仅在符号连接与其目的目录或文件拥有者具有同样的用户ID时,才使用它;

ExecCGI 拥有ExecCGI执行权限

prefork.c 控制Apache进程,对于使用prefork多道处理模块的Apache服务器;

<IfModule prefork.c>

StartServers 5//设置服务器启动时启动的子进程的个数;

MinSpareServers5//设置服务器中空闲子进程(即没有HTTP处理请求的子进程)数目的下限;

MaxSpareServers10 //设置服务器中空闲子进程数目的上限。若空闲子进程超过该设置值,则父进程就会

停止多余的子进程;

MaxClients 150 //设置服务器允许连接的最大客户数;

MaxRequestsPerChild0//设置子进程所能处理请求的数目上限,0为不受限制;

</IfModule>

access_log //日志文件用于记录服务器处理的所有请求;

CustomLog 指定access_log日志文件的位置和日志记录的格式;

LogFormat 定义日志的记录格式;

LogFormat 日志格式字符串 日志格式名称

LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %1 %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i->%U" referer

LogFormat "%{User-agent}i“ agent

LogFormat logs/access_log common

LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost

CustomLog logs/vhost_log vhost

%a远程主机IP地址

%A本地主机IP地址

%h远程主机名

%H请求协议

%l远程登录名

%u来自auth 的远程用户

%U请求的URL路径

%U{User-agent}i 用户浏览器类型

%b发送的字节数,不包括HTTP标题

%t请求的时间

%rHTTP请求的第一行的内容

%sHTTP响应状态码,200代表访问成功,404代表文件未找到,403代表禁止访问,401代表未授权访问,400代表错误请求。

%m请求方法

%v服务于该请求的服务器的ServerName

%V服务器的名字,取决于UseCanonicalName的设置

%{Host}i 返回HTTP请求的主机头信息,可能含端口号信息

split-logfile </var/www/myweb/vhost_log//当所有虚拟机日志都记录在主站点日志中时,使用此命令将日志按虚拟主机名分组,拆分成一个个独立的日

志文件,第个日志文件采用"虚拟主机名.log“形式命名,其中包含了该虚拟主机所产生的日志记录;

容器与访问控制指令:容器指令通常用于封装一组指令,使其在容器条件成立时有效,或者用于改变指令的作用域。

<IfModue ! mpm_winnt.c> //<IfModue>用于判断指定的模块是否存在,若存在(被静态地编译进服务器,或是被动态装载进服务器)则包含于

其中的指令将有效,否则会被忽略。可嵌套使用。

<IfModue ! mpm_netware.c> //若要使模块不存在时所包含的指令有效,只需在模块名前加一个“!”即可,

User nobody

Group # -1

</IfModue>

</IfModue>

基于域名虚拟主机:

例:假设当前服务器的IP地址为192.168.3.120,现要在该服务器创建两个基于域名的虚拟主机,使用端口为标准的80,其域名分别为www.myweb1.com和www.myweb2.com,站点根目录分别为/var/www/myweb1和/var/www/myweb2,日志文件分别放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目录下面,Apache服务器原来的主站点采用域名www.myweb.com进行访问。

#vi /etc/hosts //使用/etc/hosts进行域名注册;

192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com

#ping www.myweb1.com //检测域名解析是否正常;

#ping www.myweb2.com

#ping www.myweb.com

#mkdir -p /var/www/myweb1

#mkdir -p /var/www/myweb2

#mkdir -p /var/vhlogs/myweb1

#mkdir -p /var/vhlogs/myweb2

#vi /etc/httpd/conf/httpd.conf

Listen 80 //设置Listen指令侦听的端口

NameVirtualHost 192.168.3.120 //基于域名的虚拟主机,如果对多个地址使用了多个基于域名的虚拟主机

则对每个地址均要使用此指令:NameVirtualHost IP地址:端口

NameVirtualHost * 当IP地址无法确定时,使用“*”通配任意的IP地址

<VirtualHost 192.168.3.120>//定义一个虚拟主机,VirtualHost的参数必须与NameVirtualHost后面所使用的参数保持一致。

ServerName www.myweb.com//当一个请求到时,服务器会首先检查它是否使用了一个能和NameVirtualHost相匹配的IP地址。如果匹配,就会

DocumentRoot /usr/local/apache/htdoes //就会查找每个与这个IP地址相对应的<VirtualHost>配置段,并尝试找出一个ServerName或ServerAlias配置相

ServerAdmin yjghddii@126.com//与请求的主机名(域名)相同的,若找到,则使用该虚拟主机的配置,并响应其访问请求。否则将使用符合这个

</VirtualHost> //IP地址的第一个列出的虚拟主机。在最前面的虚拟主机成为默认虚拟主机。

<VirtualHost 192.168.3.120>

ServerName www.myweb1.com

DocumentRoot /var/www/myweb1

DirectoryIndex index.php index.php3 index.html index.htm default.html default.html

ServerAdmin yjghddii@126.com

ErrorLog /var/vhlogs/myweb/error_log

TransferLog /var/vhlogs/myweb1/access_log

</VirtualHost>

<VritualHost 192.168.3.200>

ServerName www.myweb2.com

DocumenRoot /var/www/myweb2

DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html

ServerAdmin yjghddii@126.com

ErrorLog /var/vhlogs/myweb2/error_log

TranferLog /var/vhlogs/myweb2/access_log

</VirtualHost>

<Directory /var/www>//对Web站点目录设置访问控制;

Options FllowSymLinks

AllowOverride None

Order deny,allow

Allow from all

</Directory>

Apachectl –S //查查虚拟主机配置是否正确;

Aparhectl restart//重启Apache服务器配置生效;

例:

NameVirtualHost 192.168.168.10 //服务器配有两块网卡,IP:内网192.168.168.10,外网61.186.160.104,在Internet网中,企业域名

NameVirtualHost 61.186.160.104 //www.example.com指向外网IP地址,在企业内网的DNS服务器中,指向内网IP地址;现要求为来自内网

<VirtualHost 192.168.168.10 61.186.160.104>//外网的请求提供同样的Web服务。(httpd.conf中设置)

DocumentRoot /www/server1

ServerName www.example.com

</Virtual>

例:

Listen 80 //服务器:192.168.168.154,服务器上创建两个基于域名(主机名)的虚拟主机,域名:www.myweb3.com和www.

Listen 8080 //myweb4.com,每个虚拟主机的80端口和8080端口,分别服务一个Web站点,其站点根目录分别为

// /var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。

NameVirtualHost 192.168.168.154:80//www.myweb3.com的80端口作为默认Web站点。

NameVirtualHost 192.168.168.154:8080

<VirtualHost 192.168.168.154:80>

ServerName www.myweb3.com

DocumentRoot /var/www/myweb3-80

<VirtualHost>

<VirtualHost 192.168.168.154:8080>

ServerName www.myweb3.com

DocumentRoot /var/www/myweb3-8080

</VirtualHost>

<VirtualHost 192.168.168.154:80>

ServerName www.myweb4.com

DocumentRoot /var/www/myweb4-80

</VirtualHost>

<VirtualHost 192.168.168.154:8080>

ServerName www.myweb4.com

DocumentRoot /var/www/myweb4-8080

</VirtualHost>

基于IP地址虚拟主机:

#cd /etc/sysconfig/network-scripts //服务器有两张网卡eth0、eth1,eth0:192.168.167.157,

#cp ifctg-eth1 ifcfg-eth1:0//eth1:192.168.167.156.eth0网卡用作了基于主机名的虚拟主机,

#vi ifcfg-eth1:0 //eth1通过IP别名方式,为其绑定多个IP地址,用于提供基于IP地址

DEVICE=eth1:0 //的虚拟主机。eth1绑定的第一张虚拟网卡的设备名为eth1:0,对应的

IPADDR=192.168.167.157 //配置文件为ifcfg-eth1:0,通过修改配置文件中的设备名和IP地址,

#ifdown eth1 //即可实现IP地址的绑定。

#ifup eth1:0

#ifup eth1

#ping 192.168.167.157

#ping 192.168.167.156

#vi /etc/hosts//192.168.167.156:www.example2.com,192.168.167.157:

192.168.167.157 www.example3.com //www.example3.com,试为其创建基于IP地址的虚拟主机,端口使用80

#mkdir -p /var/www/example2 //目录分别为/var/www/example2、/var/www/example3,为这两个域再增

#mkdir -p /var/www/example3 //8080端口,使其也能在8080端口发布另外的Web站点。Web站点根目录分

///var/www/example2-8080、/var/www/example3-8080

#vi httpd.conf

Listen 80

Listen 8080

<VirtualHost 192.168.167.156:80>

ServerName www.example2.com

DocumentRoot /var/www/example2

</VirtualHost>

<VirtualHost 192.168.167.156:8080>

ServerName www.example2.com

DocumentRoot /var/www/example2-8080

</VirtualHost>

<VirtualHost 192.168.167.157:80>

ServerName www.exaple3.com

DocumentRoot /var/www/example3

</VirtualHost>

<VirtualHost 192.168.167.157:8080>

ServerName www.exaple3.com

DocumentRoot /var/www/example3-8080

</VirtualHost>

dhcp:

如何解决局域网非法DHCP服务器问题?

最近公司里部分计算机频繁出现不能上网的问题,这些计算机都是自动获得IP的,但经过检查我发现他们获得的网关地址是错误的,按照常理DHCP不会把错误的网关发送给客户端计算机的。后来我使用ipconfig /release释放获得的网络参数后,用ipconfig /renew可以获得真实的网关地址,而大部分获得的仍然是错误的数据。所以我断言局域网中肯定存在其他的DHCP服务器,也叫做非法DHCP服务器。为什么真正的DHCP服务器分配的网络参数无法正确传输到客户机上呢?

首先来了解下DHCP的服务机制:

一般公司内部都会有一个DHCP服务器来给客户端计算机提供必要的网络参数信息的,例如IP地址,子网掩码,网关,DNS等地址,很多情况路由器就可以担当此重任。每次客户端计算机启动后都会向网络中发送广播包寻找DHCP服务器(前提是该计算机被设置为自动获得IP地址),广播包随机发送到网络中,当有一台DHCP服务器收到这个广播包后就会向该包源MAC地址的计算机发送一个应答信息,同时从自己的地址池中抽取一个IP地址分配给该计算机。

为什么非法DHCP会被客户端计算机认为是合法的?

根据DHCP的服务机制,客户端计算机启动后发送的广播包会发向网络中的所有设备,究竟是合法DHCP服务器还是非法DHCP服务器先应答是没有任何规律的,客户端计算机也没有区分合法和非法的能力。这样网络就被彻底扰乱了,原本可以正常上网的机器再也不能连接到intelnet。

解决方法:

1、ipconfig /release 和 ipconfig /renew

我们可以通过多次尝试广播包的发送来临时解决这个问题,直到客户机可以得到真实的地址为止。即先使用ipconfig /release释放非法网络数据,然后使用ipconfig /renew尝试获得网络参数,如果还是获得错误信息则再次尝试/release与/renew直到得到正确信息。

提醒:这种方法治标不治本,反复尝试的次数没有保证,另外当DHCP租约到期后客户端计算机需要再次寻找DHCP服务器获得信息,故障仍然会出现。

2、通过“域”的方式对非法DHCP服务器进行过滤

将合法的DHCP服务器添加到活动目录(Active Directory)中,通过这种认证方式就可以有效的制止非法DHCP服务器了。原理就是没有加入域中的DHCP Server在相应请求前,会向网络中的其他DHCP Server发送DHCPINFORM查询包, 如果其他DHCP Server有响应,那么这个DHCP Server就不能对客户的要求作相应,也就是说网络中加入域的DHCP服务器的优先级比没有加入域的DHCP服务器要高。这样当合法DHCP存在时非法的就不起任何作用了。

提醒:这种方法效果虽然不错,但需要域的支持。要知道对于众多中小企业来说“域”对他们是大材小用,基本上使用工作组就足以应对日常的工作了。所以这个方法,效果也不错,但不太适合实际情况。

3、在路由交换设备上封端口

DHCP服务主要使用的是UDP的67和68端口,DHCP服务器端应答数据包使用68端口,67端口为客户机发送请求时使用。所以我们可以在路由器上保留服务器的68端口,封闭客户机的68端口,就能达到过滤非法DHCP服务器的目的。

提醒:如果计算机很多的话,操作起来不方便,而且会增加路由器的负担,影响到网络速度。

4、查出非法DHCP服务器幕后黑手,进行屏蔽

DHCP服务器也充当着网关的作用,如果获得了非法网关地址,也就是知道了非法DHCP服务器的IP地址。通过ping ip 查到主机名,通过arp 主机名 查出MAC地址。知道了MAC地址,就可以在路由器中屏蔽这个MAC,或者是屏蔽该MAC的68端口。或者其他的方法都行,幕后黑手都找到了,怎么处置就随你了。我用的就是这第4种方法。

-----------------------------------------------------

WINS服务器和DNS服务器有什么区别?

对于许多人来说,WINS服务器和DNS服务器之间的关系还是一件神秘的事情。不过,我们希望用你的问题澄清这个事情。

首先,DNS指的是“域名服务器”,而WINS指的是“Windows互联网名称服务”。两者都是用来解析域名的,但是,使用的方法完全不同!

为了帮助说明这个问题,我准备使用一个例子,保证让你正确地了解这两种服务的情况。

考虑一个名为“Jupiter”的文件服务器和下面两个指令:

Ping Jupiter.space.net

Net use * jupiter mainshare

上面两个指令看起来很相似。第一个指令是向我们的文件服务器发送一个ping (icmp echo)数据包,确认这个服务器在工作。而第二个指令呼叫同一台服务器(jupiter),以便连接到一个名为“mainshare”的共享文件夹。

虽然这两个指令都指向同一台服务器(Jupiter),但是,它们之间的区别是很重要的。

这里的“Ping”使用DNS把Jupiter.space.net解析为一个IP地址,如204.45.12.1。而“net use”指令使用WINS把NetBIOS名称“Jupiter”解析为一个IP地址。

这样,你也许会感到疑惑,为什么有两种不同的服务实际上在完成同一个任务?

这个问题的答案是,这两种服务的每一种服务都依靠不同的协议。他们只是以不同的方式工作。

WINS是微软网络拓扑的一个重要的组成部分。在过去,你需要在Windows网络中运行一个WINS服务器以避免域名解析的问题。当时的这种NetBIOS(Windows机器名称)协议只能在NetBEUI传输协议上工作。如果你曾经使用过Windows 95,你会记得NetBEUI协议经常出现在你的网络属性中。在网络属性中,TCP/IP协议也是一个选项。

目前,DNS取代了WINS。由于微软对NetBIOS做了修改,允许它使用TCP/IP堆栈完成其工作(TCP/IP协议上的NetBIOS),大多数DNS服务器都能够处理NetBIOS的请求。这就是WINS服务器变得越来越少的原因。

简言之,DNS把TCP/IP主机名称映射为IP地址,WINS把NetBIOS主机名称映射为IP地址。

--------------------------------------------------------

DNS:

常见的DNS错误

1. 没有增加 SOA (start of authority) RR 的 serial 值

这是最主要的 DNS 出错的原因. 因为, serial 值没有增加, secondary server 就不会在 primary server 的资料改变后随著更心. 包括改变 SOA 里面其他的值, seconrary server 自己并不会发觉. 即使是修改 SOA RR 里面的资料, 也都要记得去改 SOA RR 的 serial 值. 改了 serial 后,secondary 到时后查出有增加, 就会从 primary 作一次 zone transfer. 改了 SOA RR 后, 最好去测试一下 secondary server 是不是有更新. 目前有些工具程式可以帮忙检查.

2. 在 BIND 中的资料, 后面, 少打了一个点 (.)

少打了一个点, 看起来差不多. 但是却造成了很大的问题. BIND 的设定档案一定要小心的设定. 要不然很可能产生以下的效果:

在 sample.com.tw. 这层: sample.com.tw IN NS ns.sample.com.tw 却是代表: sample.com.tw.sample.com.tw. IN NS ns.sample.com.sample.com.tw.

-- 在 com.tw 这层, 的确发生过这样的事情.

3. 忘记设定 reverse DNS (或称 pointer, PTR) RR

很多系统, 在有 connection 建立时, 会花一段不短的时间. 去查查client 端的 Domain Name 是否能够转成 IP Address. (例: Telnet)另外一个例子是 traceroute. 当在 traceroute 时, 所经过的 router都会去查 reverse, 在台湾常常因为没有设, 显示时就会 delay. 就是因为 traceroute 会去查每个 hop 的 domain name. 另外一个例子就是当连线到其它的 host, 该 host 上就会纪录来源地. 这时也要用 PTR. ==>参阅 RFC 1537, RFC 1713

4. DNS 管理者的协调工作

要是 parent 跟 chile zone 的管理者 (这层有可以有好几个 )没有联络好,很可能, 就会产生两种错误: lame delegations (不完整的授与) 还有missing delegations (遗失的授与). lame delegations 的情况是, parent列出下面某个 domain 的 name server, 但是其中可能有几台, 没有这个zone 的全部资料 (authority 的意义). 要是parent 列出的这些 name server 通通都没有 SOA (primary, secondary server 都会有 SOA), 这就成了 missing delegations. 最常遇到 missing delegations 的状况是这个单位改 IP, 但是又没有与上面一层通知. 当然, 也有一些程式可以帮忙找出 lame and missiong delegations.

-- 事实上, 从 syslog 中就可以找到一堆 “Lame server on ...“ 的讯息. 当然, 在 make BIND 时也可以关掉这些.

5. 坏的 resolv.conf 设定

resolv.conf 里面包含了 local domain, 当你没有把全部的 domain name 打出来时, 就会自动加上去这个东西. 然后机器就不会去查 DNS 而直接用这个 domain name 连出去了. 要是 resolv.conf 有不正确的 domain name entry, 那就有可能连到一堆不存在的地方. (然后得到 error.)

6. 旧的 root cache 档案

root cache 档案里面会写 root domain 的 DNS 的 domain name 还有 IP,root cache 并不是自己会去改变, 更新的. 而是要人工去设定. 系统管理员要去注意是否有新增家 root server. 要是一台 DNS 用了一个太旧的 root cache 档案, 就有可能有些 domain 会查不到. 最新的 root cache 档案可以从 ftp://rs.internic.net/domain/named.root 抓到.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/153770.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存