为您找到与linux服务器dns配置安装相关的共200个结果:
如果没有设置DNS服务器的话,那么系统就不能正常上网了。,那么Linux系统怎么查看和修改DNS配置呢?下面读文网小编就为大家带来了Linux系统查看和修改DNS配置的方法。
1:查看/etc/resolv.con文件
[root@localhost ~]# cat /etc/resolv.conf
nameserver 192.168.xxx.xxx
#search localdomain
[root@localhost ~]#
2:使用nslookup命令查看DNS信息
[root@localhost ~]# nslookup 127.0.0.1 | grep Server
Server: 192.168.xxx.xxx
[root@localhost ~]#
3:使用dig命令来查看DNS信息
[root@localhost ~]# dig
; 《《》》 DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 《《》》
;; global options: printcmd
;; Got answer:
;; -》》HEADER《《- opcode: QUERY, status: NOERROR, id: 36888
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 3
;; QUESTION SECTION:
;。 IN NS
;; ANSWER SECTION:
。 86163 IN NS m.root-servers.net.
。 86163 IN NS a.root-servers.net.
。 86163 IN NS j.root-servers.net.
。 86163 IN NS l.root-servers.net.
。 86163 IN NS e.root-servers.net.
。 86163 IN NS d.root-servers.net.
。 86163 IN NS k.root-servers.net.
。 86163 IN NS f.root-servers.net.
。 86163 IN NS h.root-servers.net.
。 86163 IN NS c.root-servers.net.
。 86163 IN NS g.root-servers.net.
。 86163 IN NS b.root-servers.net.
。 86163 IN NS i.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 3599 IN A 112.4.20.71
b.root-servers.net. 86163 IN A 192.228.79.201
i.root-servers.net. 86173 IN A 192.36.148.17
;; Query time: 8 msec
;; SERVER: 192.168.xxx.xxx#53(192.168.xxx.xxx)
;; WHEN: Sat Apr 16 07:34:37 2016
;; MSG SIZE rcvd: 289
[root@localhost ~]# dig | grep SERVER: | awk -F# ‘{ print $1 }’ | awk -F: ‘{ print $2 }’
192.168.xxx.xxx
4:其它一些方法查看DNS信息
在网上看到还有一些其他方法,查看服务器的DNS配置信息,如下所示,不过这些方法,由于环境限制,我没有验证过,仅供参考。
nm-tool | grep DNS
nmcli dev list iface eth0 | grep IP4
浏览量:3
下载量:0
时间:
Postfix是一款用法灵活的电子邮件应用程序,那么大家知道Linux怎么安装配置Postfix吗?今天读文网小编与大家分享下Linux安装配置Postfix的具体操作步骤,有需要的朋友不妨了解下。
postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。现在目前非常多的主流邮件服务其实都在采用postfix. 当我们需要一个轻量级的的邮件服务器是,postfix不失为一种选择。
1. postfix是免费的:
postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:
postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
3. 兼容性好:
postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
4. 更健壮:
postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活:
postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以
通过配置文件设置每个程序的运行参数。
6. 安全性
postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。
下面来介绍linux上如何搭建和配置postfix服务:
1.关掉sendmail相关的所有服务,最好是直接卸载sendmail.
# service sendmail stop
# chkconfig sendmail off
#rpm -qa | grep sendmail | xargs rpm -e
2.安装postfix.
redhat6.0以上版本应该是默认集成了postfix服务的,假如没有安装的话,可以手动安装。
rpm -qa | grep postifx (查看是否安装)
yum install postfix
3.安装完成后,修改配置文件:/etc/postfix/main.cfg
vi /etc/postfix/main.cf
myhostname = sample.test.com ← 设置系统的主机名
mydomain = test.com ← 设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)
myorigin = $mydomain ← 将发信地址“@”后面的部分设置为域名(非系统主机名)
inet_interfaces = all ← 接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← 指定发给本地邮件的域名
home_mailbox = Maildir/ ← 指定用户邮箱目录
<保存退出!>
4.为本机添加DNS server.
为什DNS Server?因为在邮件发送过程中,需要把邮件地址的domain地址转化成IP地址,再去发送给对应的收件人,这里涉及到DNS中的A记录和MX记录相关的知识,不熟悉的同学可以google或者百度 脑补一下 :-)
如何添加DNS server呢,DNS server去哪里寻找?
vim /etc/resolv.conf
添加如下行:
nameserver 8.8.8.8
nameserver 8.8.4.4
上面用的8.8.8.8/8.8.4.4是Google Free DNS server,当然还有很多免费的DNS server供大家使用,可以google一下:-)
5.测试一下邮件是否能够发送成功:
命令行输入$: > echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com
Note:if you see below warings after you run above command.
send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
send-mail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only
that means you don't have IPv6 configured in your OS's network stack, but your mailer (presumably postfix) is configured to use IPv6. Since there is no IPv6 for your mailer to use, it's warning you that it's only going to use IPv4.
To disable the waring messsage, go to /etc/postfix/main.cf and change from:
inet_protocols = all
to:
inet_protocols = ipv4
This will only use ipv4 and the warning message will go away.
You will have to issue a stop and start for postfix to register the change.
service postfix restart
6.查看log,确认邮件发送状态:
Postfix邮件的log位置是:/var/log/maillog
发送成功的话,会返回250和OK,也可以去自己的邮件客户端查收。
一切OK的话,那Postfix mail service应该就搭建成功了。
另外一些有用的postfix维护命令,一遍日常的检测和维护:
mailq :会列出当前在postfix发送队列中的所有邮件
postsuper -d ALL:删除当前等待发送队列的所有邮件,包括发送失败的退信
当然还有很多,就不一一列举了,大家可以网上搜索扩展,Good Luck!
7.Update Mail From sender
echo "do-not-reply@example.com root@example.com" >> /etc/postfix/generic
echo "smtp_generic_maps = hash:/etc/postfix/generic" >>/etc/postfix/main.cf
postmap /etc/postfix/generic
service postfix restart
看过“Linux怎么安装配置Postfix”
浏览量:2
下载量:0
时间:
现在目前非常多的主流邮件服务其实都在采用postfix,那么大家知道Linux系统怎么安装配置Postfix吗?今天读文网小编与大家分享下Linux系统安装配置Postfix的具体操作步骤,有需要的朋友不妨了解下。
在创建网站应用时,在用户进行某些操作时需要发邮件给用户是一种必不可少的操作。云服务虽然是一个不错的选择。但如果体量太小,或是受到某些条件限制时,自建服务也许是一个更好的选择。下面尝试在 CentOS 7 中搭建发送邮件的功能。
安装 Postfix
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
(为什么用postfix:
1. postfix是免费的:
postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:
postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
3. 兼容性好:
postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
4. 更健壮:
postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活:
postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6. 安全性
postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。 )
Postfix 现在几乎已经是 MTA (Mail Transfer Agent) 的标配了。但在它之前 Sendmail 是标配。所以在一些老旧的系统版本中,安装 Postfix 时需要先删除 Sendmail。如果系统已经安装了 Postfix,可以略过此步。
使用下面的命令查看系统使用的 MTA 情况:
代码如下:
alternatives --display mta
删除 Sendmail
代码如下:
sudo yum remove sendmail
安装 Postfix
代码如下:
sudo yum install postfix
设置 Postfix 为 MTA
代码如下:
sudo alternatives --set mta /usr/sbin/sendmail.postfix
配置 Postfix
编辑 /etc/postfix/main.cf 文件中如下配置:
复制代码代码如下:
myhostname = mail.dyniao.com # 主机名称
mydomain = dyniao.com # 邮件服务器的主域名
myorigin = $mydomain # 发送邮件中显示的域名
inet_protocols = ipv4 # 支持的网络协议
以上配置只是我在测试时能运行的最小配置,请勿使用于正式场合或生产环境。
启动 Postfix:
代码如下:
sudo service postfix start
让 Postfix 支持开机启动:
代码如下:
sudo systemctl enable postfix.service
域名配置
完成上面的步骤,已经可以往任意邮箱发送邮件了。但通常情况下只能在对方的垃圾箱中找到。要避免这种情况,还需要对主机进行域名解析的配置,使对方接收邮件的服务器信任收到的邮件。步骤如下:
添加一个 A 记录,设置邮箱用的域名,如: mail.zzxworld.com,指向主机 ip。
添加一个 MX 记录,指向第一步中添加的邮箱域名。
添加一个 TXT 记录,记录值为:
代码如下:
v=spf1 a mx ~all
上面的记录值表示使用 SPF (Sender Policy Framework) 来防止别人伪造邮件。
等域名解析生效后,就可以正常的从主机发送邮件了。
看过“Linux系统怎么安装配置Postfix”
浏览量:2
下载量:0
时间:
DNS服务器搭建很繁琐吗?DNS可以通过 IP 地址解析到域名,也可以通过域名解析到 IP 地址。那么大家知道CentOS系统怎样安装DNS服务器吗?今天读文网小编与大家分享下CentOS系统安装DNS服务器的具体操作步骤,有需要的朋友不妨了解下。
DNS 安装配置
在 RHEL5、6 中 DNS 都是用的是 bind 软件包,而在 RHEL/CentOS 7 用的是 unbound 安装包,配置文件也有了改变。我们来看一下:
2.1.安装:
代码如下:
[root@linuxprobe ~]# yum -y install unbound
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
---> Running transaction check
---> Package unbound.x86_64 0:1.4.20-19.el7 will be installed
---> Finished Dependency Resolution
·····
启动服务
代码如下:
[root@linuxprobe ~]# systemctl restart unbound https://启动DNS服务
[root@linuxprobe ~]# systemctl enable unbound
ln -s ‘/usr/lib/systemd/system/unbound.service‘ ‘/etc/systemd/system/multi-user.target.wants/unbound.service‘
https://下次系统重启自动启动DNS服务
2.2.修改配置文件
unbound 安装好之后,缺省配置文件在 /etc/unbound/unbound.conf。
2.2.1.修改端口监听地址
相当于 RHEL6 配置文件中的:listen-on port 53 { any; };
查看默认监听地址
代码如下:
[root@linuxprobe ~]# netstat -tunlp |grep unbound
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3333/unbound
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3333/unbound
tcp6 0 0 ::1:53 :::* LISTEN 3333/unbound
tcp6 0 0 ::1:8953 :::* LISTEN 3333/unbound
udp 0 0 127.0.0.1:53 0.0.0.0:* 3333/unbound
udp6 0 0 ::1:53 :::* 3333/unbound
https://默认监听本地回环地址,也就是现在只有自己能访问DNS服务,其它主机不能访问本机的DNS服务
修改监听地址代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf
……
38 # interface: 0.0.0.0
39 interface: 0.0.0.0
……
https://找到38行,复制去掉注释行,打开监听全网功能。
重启服务查看
代码如下:
[root@linuxprobe ~]# systemctl restart unbound
[root@linuxprobe ~]# netstat -tunlp |grep unbound
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 3461/unbound
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3461/unbound
tcp6 0 0 ::1:8953 :::* LISTEN 3461/unbound
udp 0 0 0.0.0.0:53 0.0.0.0:* 3461/unbound
https://现在53号端口监听的是0.0.0.0,即所有网段都监听。
2.2.2.修改允许查询的范围
在 RHEL6 中,DNS 配置文件中有这样一句:allow-query { localhost; };。此句定义的是允许向本机查询(迭代 & 递归)的主机范围,localhost 代表只有本机可以向本机查询。而在配置中,经常改 localhost 为 any,让所有主机能够向本机查询 DNS。所以,在 RHEL7 中,也要做这样的修改,只不过修改内容不同而已,如下:
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf
……
177 # access-control: 0.0.0.0/0 refuse
178 access-control: 0.0.0.0/0 allow
179 # access-control: 127.0.0.0/8 allow
……
找到配置文件/etc/unbound/unbound.conf的第177行,缺省为注释行,把内容改为允许访问,然后保存退出,重启服务即可。
2.2.3.创建解析文件
RHEL/CentOS 5、6系统中,DNS 的解析文件分正向和反向两个解析文件,并且有解析文件的模板文件。但是在 RHEL7中,正反向解析文件合并为一个,并且无模板文件,需自己创建,路径可以在主配置文件中查看:
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf
……
453 # You can add locally served data with
454 # local-zone: "local." static
455 # local-data: "mycomputer.local. IN A 192.0.2.51"
https://正向解析可参考语法
456 # local-data: ‘mytext.local TXT "content of text record"‘
457 #
458 # You can override certain queries with
459 # local-data: "adserver.example.com A 127.0.0.1"
460 #
461 # You can redirect a domain to a fixed address with
462 # (this makes example.com, www.example.com, etc, all go to 192.0.2.3)
463 # local-zone: "example.com" redirect
464 # local-data: "example.com A 192.0.2.3"
465 #
# Shorthand to make PTR records, "IPv4 name" or "IPv6 name".
467 # You can also add PTR records using local-data directly, but then
468 # you need to do the reverse notation yourself.
469 # local-data-ptr: "192.0.2.3 www.example.com"
https://反向解析参考语法
470
471 include: /etc/unbound/local.d/*.conf
472
473 # service clients over SSL (on the TCP sockets), with plain DNS inside
……
查看本机FQDN
代码如下:
[root@linuxprobe ~]# hostname
linuxprobe.example.com
https://由此可知,域名为example.com
创建解析文件代码如下:
[root@linuxprobe ~]# vim /etc/unbound/local.d/example.conf
local-zone: "example.com." static
local-data: "example.com. 86400 IN SOA ns.example.com. root 1 1D 1H 1W 1H"
local-data: "ns.example.com. IN A 192.168.10.10"
local-data: "linuxprobe.example.com. IN A 192.168.10.10"
local-data-ptr: "192.168.10.10 ns.example.com."
local-data-ptr: "192.168.10.10 linuxprobe.example.com."
查看RHEL6上解析文件以作对比
代码如下:
[root@linuxprobe ~]# vim /var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
2.3.禁用服务用户
每个服务都是有其专用的服务用户,DNS 的服务用户为 unbound,实际情况下服务用户的启用有可能有安全隐患,这里要禁用服务用户。
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf
······
211 # if given, user privileges are dropped (after binding port),
212 # and the given username is assumed. Default is user "unbound".
213 # If you give "" no privileges are dropped.
214 #username: "unbound"
215 username: " "
216
217 # the working directory. The relative files in this config
······
如上,找到配置文件的第214行,删除unbound即可,删除后为:username ” “。
2.4.验证
代码如下:
[root@linuxprobe ~]# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf
验证无配置问题,即可重启服务
复制代码代码如下:
[root@linuxprobe ~]# systemctl restart unbound
dns验证:
修改本机DNS
代码如下:
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:0C:29:70:····
TYPE=Ethernet
····
IPADDR="192.168.10.10"
PREFIX="24"
···
DNS1=192.168.10.10
NAME=eth0
ONBOOT=no
[root@linuxprobe ~]# systemctl restart network
nslookup验证
代码如下:
[root@linuxprobe ~]# nslookup
linuxprobe.example.com.
192.168.10.10
ok dns设置成功
PS:关闭防火墙
在本次实验中我们关闭了 linux 的3大防火墙。当没有关闭防火墙时,远程主机验证可能出现故障,这时需要在 DNS 服务器防火墙上开放 DNS 服务。我们以 firewall 防火墙为例,修改一下:
代码如下:
[root@linuxprobe ~]# systemctl stop iptables
[root@linuxprobe ~]# systemctl stop ebtables
[root@linuxprobe ~]# systemctl disable iptables
[root@linuxprobe ~]# systemctl disable ebtables
[root@linuxprobe ~]# firewall-cmd --add-service=dns --permanent
success
[root@linuxprobe ~]# firewall-cmd --reload
success
[root@linuxprobe ~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client dns ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
https://DNS服务器上Firewall开放DNS访问ok
看过“CentOS系统怎样安装DNS服务器”
浏览量:8
下载量:0
时间:
DNS可以完成域名与 IP 地址的互换,可以通过 IP 地址解析到域名,也可以通过域名解析到 IP 地址。那么大家知道CentOS系统怎么安装DNS服务器吗?今天读文网小编与大家分享下CentOS系统安装DNS服务器的具体操作步骤,有需要的朋友不妨了解下。
安装bind
yum install -y bind bind-chroot bind-utis
BIND配置文件保存在:
/etc/named.conf 主配置文件
/var/named/ 域zone文件位置
修改主配置文件
vim /etc/named.conf (如下图1)
修改完毕,保存退出
接着配置zone文件
修改zone配置文件vim /etc/named.rfc1912.zones (如下图2)
zone配置文件简单说明:
常见的正解文件 RR 相关信息
[domain] IN [[RR type] [RR data]]
主机名. IN A IPv4 的 IP 地址
主机名. IN AAAA IPv6 的 IP 地址
领域名. IN NS 管理这个领域名的服务器主机名字.
领域名. IN SOA 管理这个领域名的七个重要参数(如上说明)
领域名. IN MX 顺序数字 接收邮件的服务器主机名字
主机别名. IN CNAME 实际代表这个主机别名的主机名字.
单位:W= 周、D= 日、H= 小时、M= 分钟。
$TTL 86400
@ IN SOA ns.helome.com. root ( # ns.test.web. 是DNS服务器的名称
0 ; serial (d. adams) 仅作为序列号而已
1D ; refresh 服务器的更新时间
15M ; retry 重新更新时间间隔
1W ; expiry 多久之后宣布失败
1H ) ; minimum 相当于缓存记忆时间
@ IN NS ns.helome.com.
@ IN MX 5 mail.helome.com. (5为优先级别)
ns IN A 192.168.32.131
www IN A 192.168.32.131
mail IN A 192.168.32.131
配置正向解析(如下图一)
cd /var/named/
cp named.localhost helome.com.zone
vim helome.com.zone(一定要和主配置文件里面定义的zone文件名一致)
配置反向解析(如下图二)
cp named.localhost 32.168.192.zone
vim helome.com.zone
保存退出!
更改防火墙设置和selinux设置
getenforce
setenforce 0
iptables –F (如下图一所示)或者vim /etc/sysconfig/iptables #配置防火墙端口(如下图二所示)
-AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
service iptables restart #重启防火墙,使规则生效
启动bind
service named start
修改/etc/resolv.conf文件
vim /etc/resolv.conf
测试检测域信息是否正常
检查之前先看下 配置文件有没有读取权限 ll /var/named (如果没有 chmod +r /var/named/* 即可)
使用host或nslookup命令 检测域信息是否正常(如下图所示)
host mail.helome.com
nslookup mail.helome.com
到此DNS服务器的搭建就完毕了。
bind文件配置过程中容易出错
以下命令用以检查bind配置文件及zone文件语法
named-checkconf/etc/named.conf
named-checkzone helome.com /var/named/helome.com.zone
浏览量:5
下载量:0
时间:
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。那么大家知道CentOS中怎么安装配置FTP服务器吗?今天读文网小编与大家分享下CentOS中安装配置FTP服务器的具体操作步骤,有需要的朋友不妨了解下。
安装 VSFTP
代码如下:
yum -y install vsftpd
创建FTP日志文件路径
代码如下:
touch /var/log/vsftpd.log
启动配置
代码如下:
chkconfig --list vsftpd
如果是全off 则手动设置 0:off 1:off 2:off 3:off 4:off 5:off 6:off
代码如下:
chkconfig --level 2345 vsftpd on
启动ftp服务:
代码如下:
service vsftpd start
查看ftp服务状态:
代码如下:
service vsftpd status
重启ftp服务:
代码如下:
service vsftpd restart
关闭ftp服务:
代码如下:
service vsftpd stop
编辑配置文件
代码如下:
vi /etc/vsftpd/vsftpd.conf
代码如下:
anonymous_enable=NO #设定不允许匿名访问
local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
chroot_list_enable=YES #使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES #允许使用ASCII模式上传
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。
默认vsftpd.conf中不包含这些设定项目,需要自己手动添加RHEL/CentOS FTP服务配置。
代码如下:
guest_enable=YES #设定启用虚拟用户功能。
guest_username=ftp #指定虚拟用户的宿主用户。-RHEL/CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的RHEL/CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
创建 chroot list,将ftp用户加入其中:
代码如下:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
安装Berkeley DB工具
代码如下:
yum install db4 db4-utils
创建用户密码文本,注意奇行是用户名,偶行是密码
代码如下:
vi /etc/vsftpd/vuser_passwd.txt
ftpuser1
ftppass1
ftpuser2
ftppass2
生成虚拟用户认证的db文件
代码如下:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件,注释掉所有配置
代码如下:
vi /etc/pam.d/vsftpd
增加下面两句
代码如下:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
创建虚拟用户个性RHEL/CentOS FTP服务文件
代码如下:
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
内容如下:
代码如下:
local_root=/opt/var/ftp1 # 虚拟用户的根目录(根据实际修改)
write_enable=YES # 可写
anon_umask=022 # 掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
开启防火墙端口
代码如下:
vi /etc/sysconfig/iptables
添加一行,端口号使用的默认21端口
代码如下:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
为目录附权限并重启动vsftp服务:
代码如下:
mkdir /opt/var/ftp/ftpuser1
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd restart
看过“CentOS中怎么安装配置FTP服务器”
浏览量:5
下载量:0
时间:
你们知道怎么查看服务器的硬件配置信息吗?下面是读文网小编带来的关于linux怎么查看服务器硬件配置的内容,欢迎阅读!
linux怎么查看服务器硬件配置?
方法一:
fdisk -l 可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息。
方法二:
直接查看
cat /proc/partitions
浏览量:3
下载量:0
时间:
想知道服务器硬件配置的要求吗,下面是读文网小编带来的关于linux服务器硬件配置要求是多少的内容,欢迎阅读!
[root@idc ~]# more /proc/cpuinfo
可以看到详细内容或:
[root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
model name: Intel(R) Xeon(TM) CPU 2.80GHz model name: Intel(R) Xeon(TM) CPU 2.80GHz
model name: Intel(R) Xeon(TM) CPU 2.80GHz model name: Intel(R) Xeon(TM) CPU 2.80GHz
physical id : 0 physical id : 0 physical id : 3 physical id : 3
[root@idc ~]#
说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。
其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到.
flags 如果有 ht 说明支持超线程技术判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理CPU 可以看到上面,
这台机器有两个双核的CPU,ID分别是0和3,大小是2.8G。
浏览量:2
下载量:0
时间:
对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令。今天,读文网小编就简单的讲解一下如何安装和使用rz、sz命令。
1,搭建环境:主机:ubuntu9.10
平台:mini2440
内核:2.6.30.10
交叉编译器:arm-linux-3.4.1
2,下载软件 rzsz-3.48.tar.gz:
#wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
3,解压
#tar zxvf rzsz-3.48.tar.gz
在目录下会出现src目录。
4,我要把命令放到mini2440中执行所以要修改Makefile
#gedit Makefile
修改CC=arm-linux-gcc
修改OFLAG= -O -DREGISTERED
否则执行时会出现:
**** UNREGISTERED COPY *****
Please read the License Agreement in rz.doc
5,安装
#cd src
#make posix
注意:这个软件安装与常规的GNU软件不同—没有configure(配置)及make install (安装过程)。先执行命令make,将给出下面的提示:
[root@web1 rzsz]# make
Please study the #ifdef’s in crctab.c, rbsb.c, rz.c and sz.c,
make any necessary hacks for oddball or merged SYSV/BSD systems,
then type ’make SYSTEM’ where SYSTEM is one of:
posix POSIX compliant systems
linux LINUX systems
odt SCO Open Desktop
icc SCO Open Desktop, Intel compiler
sysvr4 SYSTEM 5.4 Unix, SCO Open Desktop
sysvr3 SYSTEM 5.3 Unix with mkdir(2), COHERENT 4.2
sysv SYSTEM 3/5 Unix
xenix Xenix
x386 386 Xenix
bsd Berkeley 4.x BSD, Ultrix, V7
tandy Tandy 6000 Xenix
dnix DIAB Dnix 5.2
dnix5r3 DIAB Dnix 5.3
amiga 3000UX running SVR4
POSIX POSIX compliant systems (SCO Open Desktop, strict)
doc Format the man pages with nroff
根据自己的系统选择make的位置参数,一般情况下,选posix或linux就可以了。执行命令make posix,我们从输出部分可以很清楚的看见这个步骤所进行的工作:
#make posix
gcc -m486 -O2 -DLINUX -DHVM -DREGISTERED -s -DPOSIX -DMD=2 rz.c -o rz
size rz
text data bss dec hex filename
24847 636 10400 35883 8c2b rz
rm -f rb rx rc
ln rz rb
ln rz rx
ln rz rc
gcc -m486 -O2 -DLINUX -DHVM -DREGISTERED -s -DPOSIX sz.c -o sz
size sz
text data bss dec hex filename
29030 696 10208 39934 9bfe sz
rm -f sb sx zcommand zcommandi
ln sz sb
ln sz sx
ln sz zcommand
ln sz zcommandi
6,开发板设置
1),把编译好的rb,rx,rc,rz,sb,sx,sz,zcommand zcommandi拷贝到主机/mnt/nfs目录,
启动nfs服务,把这几个可执行文件拷贝到开发板的/usr/bin目录下,
2),然后将交叉编译器/usr/local/arm/3.4.1/arm-linux/lib下的文件拷贝到开发板的/lib下。
3),设置环境变量 export RZSZLINE=/dev/modem,如果不设置这个环境变量,执行命令rz的时候,可能会提示你“Warning: Missing environment variable ’RZSZLINE’ (Linux) rz ready. Type “sz file 。。.” to your modem program”。
注:以上步骤或许不用都做即可配好。
7,使用
在XP下的SecureCRT中启动串口,Linux启动后,进入相应目录,输入rz,即可选择要传送的文件。
如果是应用程序,则要用chmod +x filename 改成可执行属性。
上面就是Linux下安装rz/sz命令的方法介绍了,如果你要进行Linux与windows文件之间的传输,需要用到rz、sz命令的话,可按上面的操作进行rz、sz命令的安装配置。
看过“ ”
浏览量:3
下载量:0
时间:
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。那么你知道在服务器上怎么安装linux系统吗?小编带来了服务器上安装linux系统的具体操作过程,下面大家跟着读文网小编一起来学习一下吧。
我们启动服务器的时候.首先装进光驱的并不是启动盘,而是阵列引导盘.然后服务器从光驱启动后就会出现如下界面,我们选择要装的系统.我这里需要的是6.3 i386,回车.
然后服务器会有刷屏的提示,一堆一堆,我们默默的等待.
提示我们选择语言,选择简体中文.
他提示不能用,但是先是用英文,一会就可以用汉语了.点击OK
选择键盘类型.
选择启动的方式.我们选择第一个光驱启动.
这里就和普通的计算机不一样了.服务器会弹出光驱中的阵列引导盘,然后放入你的系统引导盘.
这是开始没有检测到.在点击OK就可以检测到启动光盘.后边的步骤就和正常的差不多了.
选择忽略所有数据.
选择时区:上海亚洲
输入root用户的密码.假如密码太简单的话,他会提示你该密码过于简单,是否还要继续用,你要是想用,就点击OK.
进入分区的界面.创建自定义分区.
根据自己的需求来分区.
点击创建
我们按照自己的需求来选择相应的分区.我再次建立的是基本的分区.弹出对话框:
输入挂载点,系统类型,一般是ext3,挂载点的大小等信息后,确定.可以建立多个.我在此建立的是5个.强调一下,swap必须有,一般是内存的两倍.
下一步后格式化系硬盘.点击格式化.
这一步无关紧要,直接默认设置就可以.下一步.
最后一道程序就是安装基本的服务.也可以以后自定义,我选择的是现在自定义.下一步
出现你需要安装服务的基本类型.选择一下你所需要的安装包.选择好后,下一步.我建议大家还是不要选择桌面的.毕竟linux是以命令行主导的.自己多动动手比较好一点.
这服务器就开始安装服务了.这个步骤需要一个很长的过程.
安装成功后.点击重新引导.
重新引导后就出现系统安装成功的画面了.我们输入密码就可以进去该系统了.如图.
看过“ 服务器上怎么安装linux系统 ”
浏览量:3
下载量:0
时间:
从1998年Linux开始在中国市场受到关注,时间已经过去5年,从最初蜂拥而至的桌面版本,到后来悄悄进入企业应用的Linux服务器,Linux逐渐得到人们的认可。下面读文网小编为大家分享下Linux平台配置Web服务器的方法。
Web服务器概述
Web服务器又称为WWW服务器,它是放置一般网站的服务器。一台Web服务器上可以建立多个网站,各网站的拥有者只需要把做好的网页和相关文件放置在Web服务器的网站中,其它用户就可以用浏览器访问网站中的网页了。
我们配置Web服务器,就是在服务器上建立网站,并设置好相关的参数,至于网站中的网页应该由网站的维护人员制作并上传到服务器中,这个工作不属于配置服务器的工作。
IIS的安装
一般在安装操作系统时不默认安装IIS,所以在第一次配置Web服务器时需要安装IIS。安装方法为:
1、打开“控制面板”,打开“添加/删除程序”,弹出“添加/删除程序”窗口。
2、单击窗口中的“添加/删除Windows组件”图标,弹出“Windows组件向导”对话框。
图1
3、选中“向导”中的“应用程序服务器”复选框。单击“详细信息”按钮,弹出“应用程序服务器”对话框。
4、选择需要的组件,其中“Internet信息服务(IIS)”和“应用程序服务器控制台”是必须选中的。选中“Internet信息服务(IIS)”后,再单击“详细信息”按钮,弹出“Internet信息服务(IIS)”对话框。
5、选中“Internet信息服务管理器”和“万维网服务”。并且选中“万维网服务”后,再单击“详细信息”按钮,弹出“万维网服务”对话框。
6、其中的“万维网服务”必须选中。如果想要服务器支持ASP,还应该选中“Active Server Pages”。逐个单击“确定”按钮,关闭各对话框,直到返回图1的“Windows组件向导”对话框。
7、单击“下一步”按钮,系统开始IIS的安装,这期间可能要求插入Windows Server 2003安装盘,系统会自动进行安装工作。
8、安装完成后,弹出提示安装成功的对话框,单击“确定”按钮就完成了IIS的安装。
友情提示:如果想要同时装入FTP服务器,在“Internet信息服务(IIS)”对话框中应该把“文件传输协议(FTP)服务”的复选框也选中。
在IIS中创建Web网站
打开“Internet 信息服务管理器”,在目录树的“网站”上单击右键,在右键菜单中选择“新建→网站”,弹出“网站创建向导”:
网站描述就是网站的名字,它会显示在IIS窗口的目录树中,方便管理员识别各个站点。本例中起名为“枝叶的网站”。
网站IP地址:如果选择“全部未分配”,则服务器会将本机所有IP地址绑定在该网站上,这个选项适合于服务器中只有这一个网站的情况。也可以从 下拉式列表框中选择一个IP地址(下拉式列表框中列出的是本机已配置的IP地址,如果没有,应该先为本机配置IP地址,再选择。)
TCP端口:一般使用默认的端口号80,如果改为其它值,则用户在访问该站点时必须在地址中加入端口号。
主机头:如果该站点已经有域名,可以在主机头中输入域名。
主目录路径是网站根目录的位置,可以用“浏览”按钮选择一个文件夹作为网站的主目录。
网站访问权限是限定用户访问网站时的权限,“读取”是必需的,“运行脚本”可以让站点支持ASP,其它权限可根据需要设置。
单击“下一步”,弹出“完成向导”对话框,就完成了新网站的创建过程,在IIS中可以看到新建的网站。把做好的网页和相关文件复制到主目录中,通常就可以访问这个网站了。
访问网站的方法是:如果在本机上访问,可以在浏览器的地址栏中输入“http://localhost/”;如果在网络中其它计算机上访问,可以在浏览器的地址栏中输入“http://网站IP地址”。
说明:如果网站的TCP端口不是80,在地址中还需加上端口号。假设TCP端口设置为8080,则访问地址应写为“http://localhost:8080/”或“http://网站IP地址:8080”。
网站的基本配置
如果需要修改网站的参数,可以在“网站名字”上单击右键,在右键菜单中选择“属性”,可以打开“网站属性”对话框。
1、“网站”标签
“网站标识”:可以设置网站名字、IP地址、端口号。单击“高级”按钮可以设置主机头名。
2、“主目录”标签
在本地路径中可以设置主目录的路径名和访问权限。
3、“文档”标签
默认文档是指访问一个网站时想要打开的默认网页,这个网页通常是该网站的主页。如果没有启用默认文档或网站的主页文件名不在默认文档列表中,则访问这个网站时需要在地址中指明文件名。
默认文档列表中最初只有4个文件名:Default.htm、Default.asp、index.htm和Default.aspx。我用 “添加”按钮加入了一个index.asp,并用“上移”按钮把它移到了顶部。这主要是因为我的网站的主页名为“index.asp”,所以应该把它加入 列表,至于是否位于列表顶部倒是无关紧要的。
经过以上配置,一个Web网站就可以使用了。把制作好的网页复制到网站的主目录中,网站主页的文件名应该包含在默认文档中。打开浏览器,在地址栏中输入“http://本机IP地址”,就可以打开网站的主页。其它页面可以用网页中的超链接打开。
虚拟目录
虚拟目录可以使一个网站不必把所有内容都放置在主目录内。虚拟目录从用户的角度来看仍在主目录之内,但实际位置可以在计算机的其它位置,而且虚拟目录的名字也可以与真实目录不同。如:
图中用户看到的一个位于主目录下的文件夹“pic”,它的真实位置在服务器的“D:myimage”处,而主目录位于“C:mywww” 处。假设该网站的域名是“www.abc.com”,则用户访问“http://www.abc.com/pic/文件1”时,访问的实际位置是服务器的 “D:myimage文件1”,所以虚拟目录的真实名字和位置对用户是不可知的。
创建虚拟目录的方法:
打开 Internet 信息服务窗口,在想要创建虚拟目录的 Web 站点上 单击右键,选择“新建”→“虚拟目录”。弹出虚拟目录创建向导:
别名是映射后的名字,即客户访问时的名字;
路径:服务器上的真实路径名,即虚拟目录的实际位置;
访问权限:指客户对该目录的访问权限。
单击“下一步”按钮,弹出完成对话框,虚拟目录就建立成功了。把相关文件复制到虚拟目录中,用户就可以按照虚拟的树形结构访问到指定文件了。
通常虚拟目录的访问权限、默认文档等都继承自主目录,如果需要修改,可在“Internet 信息服务管理器”中的虚拟目录上单击右键,选择“属性”,就可以修改虚拟目录的参数设置了。
常见问题
1、如何在一台Web服务器上建立多个网站?
在IIS管理器的“网站”上单击右键,选择“新建Web网站”,然后用“网站创建向导”可以创建新网站,每运行一次就能创建一个网站。
多网站的关键是如何区分各个网站,区分的依据是IP地址、TCP端口号、主机头,只要这三个参数中有任何一个不同都可以。
①用IP地址区分各网站:首先为服务器配置多个IP地址,然后在网站属性的IP地址栏目中为每个网站设置一个IP地址。
②用TCP端口区分各网站:这时各网站可以使用相同的IP地址,但把TCP端口设置的不同(应该使用1024~65535之间的值),这样也可以区分各网站。但这种方法要求用户在访问网站时,必须在地址中加入端口号,显得不太方便,一般不用。
③用主机头区分各网站:主机头是一个符合DNS命名规则的符号串,一般就用网站的域名作为主机头。设置主机头可以在网站属性的“网站”标签中单击“高级”按钮进行设置。如图:
利用这个“高级”设置,还可以为一个网站配置多个IP地址,或使用不同的TCP端口。
2、网站配置完成后,为何打不开?
最常见的情况是没有把网站主页的文件名添加到默认文档列表中,IIS6中网站的默认文档只有4个:Default.htm、 Default.asp、index.htm和Default.aspx,如果你的网站主页名字不是这4个中的一个,就应该把它添加进去。如果不添加,就 应该用带文件名的地址访问这个页面。
3、为什么我的ASP页面不能执行?
在IIS6中,ASP文件必须在启用“Active Server Pages”时才能执行,如果安装IIS时,没有选中“Active Server Pages”,则服务器默认不启用“Active Server Pages”,也就不能执行ASP文件。
启用“Active Server Pages”的方法是:打开“Internet 信息服务管理器”,选中其中的“Web服务扩展”,然后启用里面的“Active Server Pages”。如图:
看过“ Linux怎么配置Web服务器 ”
浏览量:2
下载量:0
时间:
开发网站的时候,常常需要自己配置Linux服务器。读文网小编为大家分享下Linux服务器的配置步骤,下面跟着读文网小编一起来了解一下吧。
下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。
第一步:root用户登录
首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。
ssh root@128.199.209.242
这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。
接着,修改root用户的密码。
passwd
第二步:新建用户
首先,添加一个用户组(这里假定为admin用户组)。
addgroup admin
然后,添加一个新用户(假定为bill)。
useradd -d /home/bill -s /bin/bash -m bill
上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。
接着,设置新用户的密码。
passwd bill
将新用户(bill)添加到用户组(admin)。
usermod -a -G admin bill
接着,为新用户设定sudo权限。
visudo
visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。
root ALL=(ALL:ALL) ALL
在这一行的下面,再添加一行。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL) NOPASSWD: ALL
上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL:ALL) ALL
然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。
exit
ssh bill@128.199.209.242
第三步:SSH设置
首先,确定本机有SSH公钥(一般是文件~/.ssh/id_rsa.pub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。
在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。
cat ~/.ssh/id_rsa.pub | ssh bill@128.199.209.242 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'
# 或者在服务器端,运行下面命令
echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys
然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config。
sudo cp /etc/ssh/sshd_config ~
sudo nano /etc/ssh/sshd_config
在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。
Port 25000
然后,检查几个设置是否设成下面这样,确保去除前面的#号。
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
UseDNS no
上面主要是禁止root用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户。
AllowUsers bill
保存后,退出文件编辑。
接着,改变authorized_keys文件的权限。
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
然后,重启SSHD。
sudo service ssh restart
# 或者
sudo /etc/init.d/ssh restart
下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。
Host s1
HostName 128.199.209.242
User bill
Port 25000
最后,在本机另开一个shell窗口,测试SSH能否顺利登录。
ssh s1
第四步:运行环境配置
首先,检查服务器的区域设置。
locale
如果结果不是en_US.UTF-8,建议都设成它。
sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
sudo dpkg-reconfigure locales
然后,更新软件。
sudo apt-get update
sudo apt-get upgrade
最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban
浏览量:2
下载量:0
时间:
Varnish经常被用来作反向代理来加速HTTP传输,那么Varnish缓存服务器在linux系统下怎么安装呢?下面跟着读文网小编一起来了解一下吧。
Varnish是一款高性能且开源的反向代理服务器和http加速器。与传统的Squid相比,Varnish具有性能更高、速度更快、管理更方便等诸多优点。作者Poul-Henning Kamp是FreeBSD的内核开发者之一。Varnish采用全新的软件体系架构,和现在的硬件提交配合紧密。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。
挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好,这是Varnish最成功的应用案例。
Varnish特点:
1.基于内存进行缓存,重启后数据将消失
2.利用虚拟内存方式,I/O性能好
3.支持设置0~60秒的精确缓存时间
4.VCL配置管理比较灵活
5.32位机器上缓存文件大小最大为2G
6.具有强大的管理功能,例如top、stat、admin、list等
7.状态机设置巧妙,结构清晰
8.利用二叉堆管理缓存文件,可达到积极删除目的
Varnish与Squid的对比
Squid是一个高性能的代理缓存服务器,它和varnish之间有诸多的异同点,如下:
相同点:
都是一个反向代理服务器
都是开源软件
不同点,也是Varnish的优点:
Varnish的稳定性很高,两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为使用Squid要经常重启。
Varnish访问速度更快,Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而squid是从硬盘读取,因而Varnish在访问速度方面会更快。
Varnish可以支持更多的并发连接,因为Varnish的TCP连接释放要比Squid快。因而在高并发连接情况下可以支持更多TCP连接。
Varnish可以通过管理端口,使用正则表达式批量的清除部分缓存,而Squid是做不到的。
squid属于是单进程使用单核CPU,但Varnish是通过fork形式打开多进程来做处理,所以是合理的使用所有核来处理相应的请求。
当然,与传统的Squid相比,Varnish也是有缺点的,如下:
varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会发送到后端服务器,在高并发情况下,会给后端服务器造成很大压力。
在varnish使用中如果单个url的请求通过HA/F5(负载均衡)每次请求不同的varnish服务器中,被请求varnish服务器都会被穿透到后端,而且同样的请求会在多台服务器上缓存,也会造成varnish的缓存的资源浪费,也会造成性能下降。
解决方案:
综上所述在访问量很大的情况下推荐使用varnish的内存缓存方式启动,而且后面需要跟多台squid服务器。主要为了防止前面的varnish服务、服务器被重启的情况下,前期肯定会有很多的穿透这样squid可以担当第二层cache,而且也弥补了varnish缓存在内存中重启都会释放的问题。
这样的问题可以在负载均衡上做url哈希,让单个url请求固定请求到一台varnish服务器上,可以解决该问题。
varnish的工作流程
1、进程之间通信
varnish启动或有2个进程 master(management)进程和child(worker)进程。master读入存储配置命令,进行初始化,然后fork,监控child。child则分配线程进行cache工作,child还会做管理线程和生成很多worker线程。
child进程主线程初始化过程中,将存储大文件整个加载到内存中,如果该文件超出系统的虚拟内存,则会减少原来配置mmap大小,然后继续加载,这时候创建并初始化空闲存储结构体,放在存储管理的struct中,等待分配。
接着varnish某个负责接口新http连接的线程开始等待用户,如果有新的http连接,但是这个线程只负责接收,然后唤醒等待线程池中的work线程,进行请求处理。
worker线程读入uri后,将会查找已有的object,命中直接返回,没有命中,则会从后端服务器中取出来,放到缓存中。如果缓存已满,会根据LRU算法,释放旧的object。对于释放缓存,有一个超时线程会检测缓存中所有object的生命周期,如果缓存过期(ttl),则删除,释放相应的存储内存。
2、配置文件各结构之间通信
Varnish安装
代码如下:
wget http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.33.tar.gz
tar xzf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install
cd ../
varnish-3.0.4报错如下:
varnishadm.c:48:33: error: editline/readline.h: No such file or directory
varnishadm.c: In function 'cli_write':
varnishadm.c:76: warning: implicit declaration of function 'rl_callback_handler_remove'
varnishadm.c:76: warning: nested extern declaration of 'rl_callback_handler_remove'
varnishadm.c: In function 'send_line':
varnishadm.c:179: warning: implicit declaration of function 'add_history'
varnishadm.c:179: warning: nested extern declaration of 'add_history'
varnishadm.c: In function 'varnishadm_completion':
varnishadm.c:216: warning: implicit declaration of function 'rl_completion_matches'
varnishadm.c:216: warning: nested extern declaration of 'rl_completion_matches'
varnishadm.c:216: warning: assignment makes pointer from integer without a cast
varnishadm.c: In function 'pass':
varnishadm.c:233: error: 'rl_already_prompted' undeclared (first use in this function)
varnishadm.c:233: error: (Each undeclared identifier is reported only once
varnishadm.c:233: error: for each function it appears in.)
varnishadm.c:235: warning: implicit declaration of function 'rl_callback_handler_install'
varnishadm.c:235: warning: nested extern declaration of 'rl_callback_handler_install'
varnishadm.c:239: error: 'rl_attempted_completion_function' undeclared (first use in this function)
varnishadm.c:300: warning: implicit declaration of function 'rl_forced_update_display'
varnishadm.c:300: warning: nested extern declaration of 'rl_forced_update_display'
varnishadm.c:303: warning: implicit declaration of function 'rl_callback_read_char'
varnishadm.c:303: warning: nested extern declaration of 'rl_callback_read_char'
make[3]: *** [varnishadm-varnishadm.o] Error 1
make[3]: Leaving directory `/root/lnmp/src/varnish-3.0.4/bin/varnishadm'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/lnmp/src/varnish-3.0.4/bin'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/lnmp/src/varnish-3.0.4'
make: *** [all] Error 2
报错没找到解决方法,选varnish-3.0.3
代码如下:
wget http://repo.varnish-cache.org/source/varnish-3.0.3.tar.gz
tar xzf varnish-3.0.3.tar.gz
cd varnish-3.0.3
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --prefix=/usr/local/varnish --enable-debugging-symbols --enable-developer-warnings --enable-dependency-tracking --with-jemalloc
make && make install
/usr/bin/install -m 755 ./redhat/varnish.initrc /etc/init.d/varnish
/usr/bin/install -m 644 ./redhat/varnish.sysconfig /etc/sysconfig/varnish
/usr/bin/install -m 755 ./redhat/varnish_reload_vcl /usr/local/varnish/bin
useradd -M -s /sbin/nologin varnish
代码如下:
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/varnish_reload_vcl /usr/bin/
ln -s /usr/local/varnish/bin/varnishadm /usr/bin/
代码如下:
chkconfig --add varnish
chkconfig varnish on
生成varnish管理秘钥:
代码如下:
uuidgen > /usr/local/varnish/etc/varnish/secret
chmod 644 /usr/local/varnish/etc/varnish/secret
修改varnish启动配置:
代码如下:
sed -i "s@^VARNISH_VCL_CONF=/etc/varnish/default.vcl@#VARNISH_VCL_CONF=/etc/varnish/default.vclVARNISH_VCL_CONF=/usr/local/varnish/etc/varnish/linuxeye.vcl@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_LISTEN_PORT=6081@#VARNISH_LISTEN_PORT=6081VARNISH_LISTEN_PORT=80@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_SECRET_FILE=/etc/varnish/secret@#VARNISH_SECRET_FILE=/etc/varnish/secretVARNISH_SECRET_FILE=/usr/local/varnish/etc/varnish/secret@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin@#VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.binVARNISH_STORAGE_FILE=/usr/local/varnish/var/varnish_storage.bin@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_STORAGE_SIZE.*@VARNISH_STORAGE_SIZE=150M@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_STORAGE=.*@VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"@" /etc/sysconfig/varnish
假设你的服务器拥有多颗逻辑处理器,还可以做以下的设置:
/etc/sysconfig/varnish 里面还可以添加自定义的参数,用”-p 参数“的方式添加,如:
DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT}
-f ${VARNISH_VCL_CONF}
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT}
-t ${VARNISH_TTL}
-w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT}
-u varnish -g varnish
-S ${VARNISH_SECRET_FILE}
-s ${VARNISH_STORAGE}
-p thread_pools=2" #这里为添加项
Varnish启动后进入后台运行,同时返回命令行状态。需要注意的是,Varnish运行时会同时启动两个进程,一个主进程,一个是子进程,如果子进程出现问题,主进程将重新生成一个子进程。
VCL配置
代码如下:
/usr/local/varnish/etc/varnish/linuxeye.vcl
#通过backend定义了一个名称为webserver的后端主机,“.host”指定后端主机的IP地址或者域名,“.port”指定后端主机的服务端口。
backend webserver {
.host = "127.0.0.1";
.port = "8080";
}
#调用vcl_recv开始
sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
#如果请求的类型不是GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE时,进入pipe模式。注意这里是“&&”的关系
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE") {
return (pipe);
}
#如果请求的类型不是GET与HEAD,则进入pass模式
if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}
if (req.http.Authorization || req.http.Cookie) {
return (pass);
} <strong></strong>#对linuxeye.com域名进行缓存加速,这是个泛域名的概念,也就是所有以linuxeye.com结尾的域名都进行缓存
if (req.http.host ~ "^(.*).linuxeye.com") {
set req.backend = webserver;
}
#对以.jsp、.do、php结尾以及带有?的URL时,直接从后端服务器读取内容
if (req.url ~ ".(jsp|do|php)($|?)") {
return (pass);
} else {
return (lookup);
}
}</p> <p>sub vcl_pipe {
return (pipe);
}</p> <p>sub vcl_pass {
return (pass);
}</p> <p>sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (hash);
}</p> <p>sub vcl_hit {
return (deliver);
}</p> <p>sub vcl_miss {
return (fetch);
}
代码如下:
#对于请求类型是GET,并且请求的URL中包含upload,那么就进行缓存,缓存的时间是300秒,即5分钟
sub vcl_fetch {
if (req.request == "GET" && req.url ~ "^/upload(.*)$") {
set beresp.ttl = 300s;
}</p> <p> if (req.request == "GET" && req.url ~ ".(png|gif|jpg|jpeg|bmp|swf|css|js|html|htm|xsl|xml|pdf|ppt|doc|docx|chm|rar|zip|ico|mp3|mp4|rmvb|ogg|mov|avi|wmv|txt)$") {
unset beresp.http.set-cookie;
set beresp.ttl = 30d;
}
return (deliver);
}
代码如下:
#下面是添加一个Header标识,以判断缓存是否命中
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from demo.linuxeye.com";
} else {
set resp.http.X-Cache = "MISS from demo.linuxeye.com";
}
return (deliver);
}
代码如下:
#使用vcl_error可以定制一个错误页面
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
set obj.http.Retry-After = "5";
synthetic {"
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>"} + obj.status + " " + obj.response + {"</title>
</head>
<body>
<h1>Error "} + obj.status + " " + obj.response + {"</h1>
<p>"} + obj.response + {"</p>
<h3>Guru Meditation:</h3>
<p>XID: "} + req.xid + {"</p>
<hr>
<p>Varnish cache server</p>
</body>
</html>
"};
return (deliver);
}</p> <p>sub vcl_init {
return (ok);
}</p> <p>sub vcl_fini {
return (ok);
}
检查VCL配置是否正确:
代码如下:
service varnish configtest
或
代码如下:
varnishd -C -f /usr/local/varnish/etc/varnish/linuxeye.vcl
启动varnish:
代码如下:
service varnish start
查看varnish状态:
代码如下:
service varnish status
动态加载VCL配置:
代码如下:
service varnish reload
停止varnish:
代码如下:
service varnish stop
查看当前varnish监听的80端口:
代码如下:
# netstat -tpln | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15249/varnishd
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 19468/nginx
tcp 0 0 :::80 :::* LISTEN 15249/varnishd
查看varnish进程:
代码如下:
# ps -ef | grep varnishd | grep -v grep
root 15248 1 0 11:47 ? 00:00:00 /usr/sbin/varnishd -P /var/run/varnish.pid -a :80 -f /usr/local/varnish/etc/varnish/linuxeye.vcl -T 127.0.0.1:6082 -t 120 -w 50,1000,120 -u varnish -g varnish -S /usr/local/varnish/etc/varnish/secret -s malloc,150M
varnish 15249 15248 0 11:47 ? 00:00:00 /usr/sbin/varnishd -P /var/run/varnish.pid -a :80 -f /usr/local/varnish/etc/varnish/linuxeye.vcl -T 127.0.0.1:6082 -t 120 -w 50,1000,120 -u varnish -g varnish -S /usr/local/varnish/etc/varnish/secret -s malloc,150M
Varnish访问日志
varnishncsa可以使用NCSA通用日志格式(NCSA Common Log Format)将HTTP请求记录到日志文件.
代码如下:
/usr/bin/install -m 755 ./redhat/varnishncsa.initrc /etc/init.d/varnishncsa
chmod +x /etc/init.d/varnishncsa
chkconfig varnishncsa on
mkdir -p /usr/local/varnish/logs
编辑varnishncsa启动配置
代码如下:
ln -s /usr/local/varnish/bin/varnishncsa /usr/bin
sed -i 's@^logfile.*@logfile="/usr/local/varnish/logs/varnishncsa.log"@' /etc/init.d/varnishncsa
启动varnishncsa:
代码如下:
service varnishncsa start
使用logrotate轮询日志文件(每天轮询):
代码如下:
cat > /etc/logrotate.d/varnish << EOF
/usr/local/varnish/logs/varnishncsa.log {
daily
rotate 5
missingok
dateext
compress
notifempty
sharedscripts
postrotate
[ -e /var/run/varnishncsa.pid ] && kill -USR1 `cat /var/run/varnishncsa.pid`
endscript
}
EOF
日志轮询debug测试:
代码如下:
logrotate -df /etc/logrotate.d/varnish
看过“ Varnish缓存服务器在linux系统下怎么安装 ”
浏览量:2
下载量:0
时间:
DNS是域名服务器(DomainNameServer)的缩写,在TCP/IP网络中是一种很重要的网络服务,它用于将易于记忆的域名和不易记忆的IP地址进行转化。那么Linux怎么搭建DNS服务器?下面跟着读文网小编一起来了解一下吧。
DNS系统的作用:
正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)
根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
缓存域名服务器
也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录
从域名服务器(通俗一点就是用于备份DNS服务器的)
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)
官方站点:https://www.isc.org/
相关软件包:
bind-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
caching-nameserver-9.3.3-7.el5.i386.rpm
cache-nameserver软件包实际上只是提供了一些配置样例文件,对于熟悉BIND配置文件的系统管理员来说,也可以不用安装该软件包
bind,提供了域名服务的主要程序及相关文件
bind-utils,提供了对DNS服务器的测试工具程序(如nslookup、dig等)
bind-chroot,为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录)
caching-nameserver,为配置BIND作为缓存域名服务器提供必要的默认配置文件,这些文件在配置主、从域名服务器时也可以作为参考
named作为标准的系统服务脚本,通过”service named start/stop/restart“的形式可以实现对服务器程序的控制
named默认监听TCP、UDP协议的53端口,以及TCP的953端口:
其中UDP 53端口一般对所有客户机开放,以提供解析服务;
TCP 53端口一般只对特定从域名服务器开放,提高解析记录传输通道;TCP 953端口默认只对本机(127.0.0.1)开放,用于为rndc远程管理工具提供控制通道
如果没有安装bind-chroot软件包,则主配置文件默认位于 /etc/named.conf,数据文件默认保存在/var/named/ 目录
下面主要来介绍实际应用中最多的“主DNS服务器”的搭建
看一下拓扑图:
实现步骤:
1. 安装所有安装包
2.进入/var/named/chroot/etc/修改主配置文件named.caching-nameserver.conf,只把四个地方改为any就可以了。
注:radhat5.0的版本是4个any,而5.4是五个any;
3. 修改主配置文件的扩展文件named.rfc1912.zones
4.进入以下目录建立lele.com的域配置文件
5. 删除lele.com的最后一行
6.添加如下记录;
反向和正向一样,修改主配置文件的扩展文件named.rfc1912.zones,添加1.168.192.in-addr.arpa(in-addr.arp标记为反向域)为主域(master)
删除最后一行。
7.执行以下命令,然后重启服务。
注:rhel5文件必须是named组的,而且权限要求很高,不好改,简便将组和权限设置要只需要打bind-chroot-admin -s就自动设置好了
8.在客户机上测试。
如果出现如下情况,就证明DNS服务器搭建成功了。
详细文字叙述:
ls /media/Server/*bind* //查询所有安装包
rpm -ivh /media/Server/bind-* --nodeps --force //安装所有安装包
正向域名解析
1.修改主配置文件
cd /var/named/chroot/etc/named.caching-nameserver.conf
改4个地方成any
2.修改主配置文件的扩展文件named.rfc1912.zones
2.1 添加lele.com为主域(master)
zone "amao.com" { #开启域名叫lele.com
type master; #类型为主域
file "amao.com"; #域配置文件为lele.com
};
3.建立lele.com的域配置文件
cd /var/named/chroot/var/named
cp named.local amao.com
删除amao.com的最后一行
添加
www IN A 192.168.0.2
保存退出
执行bind-chroot-admin -s命令
4.重启服务,完成配置
#rhel5文件必须是named组的,而且权限要求很高,不好改,
*#简便将组和权限设置要只需要大bind-chroot-admin -s就自动设置好了
@当前域
root.localhost=root@localhost邮箱
SOA 权威域名记录
NS 域名主机
A 正向解析记录
MX 邮件转发记录
CNAME 别名
PTR 反向解析
#正向和反向不能在一个文件中出现
5.修改主配置文件的扩展文件named.rfc1912.zones
5.1 添加1.168.192.in-addr.arpa(in-addr.arp标记为反向域)为主域(master)
zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1.fx";
};
6.建立192.168.1.fx的域配置文件
cd /var/named/chroot/var/named
cp named.local 192.168.0.fx
删除lele.com的最后一行
添加
105 IN PTR www.lele.com.
保存退出
执行bind-chroot-admin -s命令
7.重启服务,完成配置
#192.168.1.105反向域写为1.168.192.in-add.arpa
看过“ Linux怎么搭建DNS服务 ”
浏览量:3
下载量:0
时间:
Linux系统中,通过Rsync+sersync能够实现系统数据的实时同步,比Rsync+Inotify-tools架构更加实用些,下面小编就给大家详细介绍下Linux安装配置Rsync+sersync的方法。
1、Rsync+Inotify-tools
(1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;
(2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。
2、Rsync+sersync
(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;
(2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。
系统之家小编提醒:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。
说明:
操作系统:CentOS 5.X
源服务器:192.168.21.129
目标服务器:192.168.21.127,192.168.21.128
目的:把源服务器上/home/www.jb51.net目录实时同步到目标服务器的/home/www.jb51.net下
具体操作:
第一部分:分别在两台目标服务器192.168.21.127,192.168.21.128上操作
浏览量:2
下载量:0
时间:
通常,Linux下是不自带rz和sz命令的,需要自己手动安装rz和sz软件包,下面读文网小编就给大家介绍下Linux下如何安装rz和sz命令,有兴趣的朋友一起来学习下吧。
#wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
浏览量:3
下载量:0
时间: