centos tget,centos8官网下载教程
大家好,如果您还对centos tget不太了解,没有关系,今天就由本站为大家分享centos tget的知识,包括centos8官网下载教程的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
如何在CentOS系统利用命令行操作文件以及文件夹
下面总结一些linux,CentOS下面常用的命令:
cd pwd
NO1.显示当前路径
[root@rehat root]# pwd
NO2.返回用户主目录
[root@rehat root]# cd
NO3.改变到其它路径
[root@rehat root]# cd/etc
NO4.返回到上一级目录
[root@rehat root]# cd..
NO5.返回到根目录
[root@rehat root]# cd/
查询文件或文件夹的CentOS常用命令 find
NO1.查找当前用户主目录下的所有文件
[root@rehat root]# find~
NO2.让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
[root@rehat root]# find.-perm 644-exec ls-l{}\;
NO3.为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
[root@rehat root]# find/ size 0-type f-exec ls-l{}\;
NO4.查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
[root@rehat root]# find/var/logs-mtime+7-type f-ok rm-i{}\;
NO5.为/找系统中所有属于root组的文件;
[root@rehat root]# find/-group root-exec ls-l{}\;
NO6. find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
[root@rehat root]# find.-name"admin.log[0-9][0-9][0-9]"-atime-7-ok rm{}\;
NO7.为了查找当前文件系统中的所有目录并排序
[root@rehat root]# find.-type d| sort
NO8.为了查找系统中所有的rmt磁带设备
[root@rehat root]# find/dev/rmt
显示文件/文件夹清单的CentOS常用命令 ls/ dir
NO1.显示所有文件,包括以.开头的隐含文件
[root@rehat root]# ls-a
NO2.显示文件的详细信息
[root@rehat root]# ls-l
NO3.显示当前目录及所有子目录信息
[root@rehat root]# ls-Rl
NO4.以时间排序显示目录,这在找最新文件有用
[root@rehat root]# ls-tl
NO5.以文件大小排序
[root@rehat root]# ls-Sl
NO6.显示文件大小,并按大小排序
[root@rehat root]# ls-s-l-S
移动或更改文件/文件夹名称的CentOS常用命令 mv与 cp命令用法相似
NO1.若移动目标文件已存在,要在移动之前,先备份原来的目录文件
[root@rehat root]# mv-b test.txt test2/
这样在 test2下将有两个文件 test.txt及 text.txt~
其中 test.txt~是备份文件,test.txt是新的文件
NO2.若移动目标文件已存在,但不想弹出是否覆盖的提示,直接覆盖
[root@rehat root]# mv-f test.txt test2/
NO3.当源与目标都拥有同一个文件,若源文件比目标新则移动,否则不移动
[root@rehat root]# mv-u test.txt test2/
NO4.更改文件名称
[root@rehat root]# mv test.txt test2.txt
NO5.更改目录名称
[root@rehat root]# mv/test2/test2_2[/size]
创建/改变文件系统的CentOS常用命令
NO1.创建文件系统类型
[root@rehat root]# umount/dev/sdb1
[root@rehat root]# mkfs-t ext3/dev/db1
[root@rehat root]# mount/dev/sdb1/practice
改变文件或文件夹权限的CentOS常用命令chmod
NO1.将自己的笔记设为只有自己才能看
[root@rehat root]# chmod go-rwx test.txt
或者
[root@rehat root]# chmod 700 test.txt
NO2.同时修改多个文件的权限
[root@rehat root]# chmod 700 test1.txt test2.txt
NO3.修改一个目录的权限,包括其子目录及文件
[root@rehat root]# chmod 700-R test
改变文件或文件夹拥有者的CentOS常用命令
chown该命令只有 root才能使用
NO1.更改某个文件的拥有者
[root@rehat root]# chown jim:usergroup test.txt
NO2.更改某个目录的拥有者,并包含子目录
[root@rehat root]# chown jim:usergroup-R test
查看文本文件内容的CentOS常用命令cat
NO1.查看文件内容,并在每行前面加上行号
[root@rehat root]# cat-n test.txt
NO2.查看文件内容,在不是空行的前面加上行号
[root@rehat root]# cat-b test.txt
NO3.合并两个文件的内容
[root@rehat root]# cat test1.txt test2.txt> test_new.txt
NO4.全并两具文件的内容,并追回到一个文件
[root@rehat root]# cat test1.txt test2.txt>> test_total.txt
NO5.清空某个文件的内容
[root@rehat root]# cat/dev/null> test.txt
NO6.创建一个新的文件
[root@rehat root]# cat> new.txt按 CTRL+ C结束录入
编辑文件文件的CentOS常用命令vi
NO1.新建档案文件
[root@rehat root]# vi newfile.txt
NO2.修改档案文件
[root@rehat root]# vi test.txt test.txt已存在
NO3. vi的两种工作模式:命令模式,编辑模式
NO4.进入 vi后为命令模式,按 Insrt键进入编辑模式
按 ESC进入命令模式,在命令模式不能编辑,只能输入命令
NO5.命令模式常用命令
:w保存当前文档
:q直接退出 vi
:wq先保存后退出。
:q!强制不保存退出
创建目录的CentOS常用命令mkdir
NO1.在当前路径创建一级目录
[root@rehat root]# mkdir test
NO2.在当前路径创建多级目录
[root@rehat root]# mkdir-p mytest/test1/test1_1
NO3.在创建目录的同时给新建的目录赋权限
[root@rehat root]# mkdir-m 777 testmod
这样任何人对此目录都有任何权限
复制文件与文件夹的CentOS常用命令cp
NO1.复制指定目录的文件到当前目录,并重命名
[root@rehat root]# cp~/.bashrc bashrc_bak
NO2.强制复制指定目录的文件到当前目录,而不管当前目录是否含有该文件
[root@rehat root]# cp-f~/.bashrc bashrc
NO2.复制指定目录到当前目录
[root@rehat root]# cp-r/root/test.
[root@rehat root]# cp-r/root/test/.
两者效果一样,在复制目录时,会将源路径的最后一级目录全部复制过去,包括它本身。
NO3.复制指定目录的文件到指定目录
[root@rehat root]# cp~/.bashrc/bak/.bashrc
NO4.在复制时将源文件的全部属性也复制过来。若不指定参数,则目标文件与源文件属性可能不一致。
[root@rehat root]# cp-a~/.bashrc/bak/.bashrc
NO5.若两个文件夹要保证同步,一个文件的改了,另一个文件也跟着改,但是要保证两个文件的文件都是最新的。
[root@rehat root]# cp-u/src/.bashrc/bak_src/bashrc
建立链接文件,包括硬链接与软链接的CentOS常用命令ln
NO1.建立类似于 Windows的快捷方式
[root@rehat root]# ln-s test.txt test.txt_slnk
NO2.当想备份一个文件,但空间又不够,则可以为该文件建立一个硬连接。这样,就算原文件删除了,只要该链接文件没被删除,则在存储空间里还是没有被删除。
[root@rehat root]# ln-l test.txt test.txt_hlnk
使用CentOS常用命令查看cpu
more/proc/cpuinfo| grep"model name"
grep"model name"/proc/cpuinfo
[root@localhost/]# grep"CPU"/proc/cpuinfo
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
如果觉得需要看的更加舒服
grep"model name"/proc/cpuinfo| cut-f2-d:
使用CentOS常用命令查看内存
grep MemTotal/proc/meminfo grep MemTotal/proc/meminfo| cut-f2-d: free-m|grep"Mem"| awk'{print$2}'
使用CentOS常用命令查看cpu是32位还是64位查看CPU位数(32 or 64)
getconf LONG_BIT
使用CentOS常用命令查看当前linux的版本
more/etc/redhat-release
cat/etc/redhat-release
使用CentOS常用命令查看内核版本
uname-r
uname-a
使用CentOS常用命令查看当前时间
date上面已经介绍如何同步时间了
使用CentOS常用命令查看硬盘和分区
df-h
fdisk-l
也可以查看分区
du-sh
可以看到全部占用的空间
du/etc-sh
可以看到这个目录的大小
使用CentOS常用命令查看安装的软件包,查看系统安装的时候装的软件包
cat-n/root/install.log
more/root/install.log| wc-l
查看现在已经安装了那些软件包
rpm-qa
rpm-qa| wc-l
yum list installed| wc-l
不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。
使用CentOS常用命令查看键盘布局
cat/etc/sysconfig/keyboard
cat/etc/sysconfig/keyboard| grep KEYTABLE| cut-f2-d=
使用CentOS常用命令查看selinux情况
sestatus
sestatus| cut-f2-d:
cat/etc/sysconfig/selinux
使用CentOS常用命令查看ip,mac地址
在ifcfg-eth0文件里你可以看到mac,网关等信息。
ifconfig cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR| cut-f2-d= ifconfig eth0|grep"inet addr:"|awk'{print$2}'|cut-c 6- ifconfig| grep'inet addr:'| grep-v'127.0.0.1'| cut-d:-f2| awk'{ print$1}'
查看网关
cat/etc/sysconfig/network
查看dns
cat/etc/resolv.conf
使用CentOS常用命令查看默认语言
echo$LANG$LANGUAGE
cat/etc/sysconfig/i18n
使用CentOS常用命令查看所属时区和是否使用UTC时间
cat/etc/sysconfig/clock
使用CentOS常用命令查看主机名
hostname
cat/etc/sysconfig/network
修改主机名就是修改这个文件,同时最好也把host文件也修改。
使用CentOS常用命令查看开机运行时间
uptime
09:44:45 up 67 days, 23:32,...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
系统资源使用情况
vmstat 1-S m procs-----------memory-------------swap-------io------system-------cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
删除文件的CentOS常用命令rm
NO1.删除当前目录的文件
[root@rehat root]# rm test.txt
NO2.强制删除当前目录的文件,不弹出提示
[root@rehat root]# rm-f test.txt
NO3.强制删除整个目录,包括目录与文件全部删除,需要管理员权限
[root@rehat root]# rm-r-f test
删除文件夹的CentOS常用命令rmdir
NO1.删除一个空目录
[root@rehat root]# rmdir emptydir
NO2.删除多级空目录
[root@rehat root]# rmdir-p emptydir/d1/d11
挂载文件系统与卸载文件系统的CentOS常用命令
mount/ umount
NO1.挂载光驱
[root@rehat root]# mount-t iso9660/dev/cdrom/mnt/cdrom
NO2.挂载光驱,支持中文
[root@rehat root]# mount-t iso9660-o codepage=936,iocharset=cp936/dev/cdrom/mnt/cdrom
NO3.挂载 Windows分区,FAT文件系统
[root@rehat root]# mount-t vfat/dev/hda3/mnt/cdrom
NO4.挂载 Windows分区,NTFS文件系统
[root@rehat root]# mount-t ntfs-o iocharset=cp936/dev/hda7/mnt/had7
No5.挂载 ISO文件
[root@rehat root]# mount-o loop/abc.iso/mnt/cdrom
NO6.挂载软驱
[root@rehat root]# mount/dev/fd0/mnt/floppy
NO7.挂载闪盘
[root@rehat root]# mount/dev/sda1/mnt/cdrom
NO8.挂载 Windows操作系统共享的文件夹
[root@rehat root]# mount-t smbfs-o username=guest,password=guest//machine/path/mnt/cdrom
NO9.显示挂载的文件系统
[root@rehat root]# mount
[root@rehat root]# cat/etc/fstab显示系统启动自动加载的文件系统
[root@rehat root]# cat/etc/mtab显示当前加载的文件系统
如何在不联网的情况下进行Centos服务器之上的软件的离线安装
Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件平台编译的,那它就不能在另外的平台或环境下正确执行。
1、*.rpm形式的二进制软件包
安装:rpm-ivh*.rpm
卸载:rpm-e packgename
说明:RPM(RedHat Packge
Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸
载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。rpm的参数中-i是安装,-v是校验,-h是用散列符
显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件
包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如apache-3.1.12-
i386.rpm和apache-devel-3.1.12-i386.rpm是软件包文件名,它们的软件包名称分别是apache和apache-
devel.更多的rpm参数请自行参看手册页:man rpm.
如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序。现在这些做的非常好了。
2、*.tar.gz/*.tgz、*.bz2形式的二进制软件包
安装:tar zxvf*.tar.gz或 tar yxvf*.bz2
卸载:手动删除
说明:*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后
只有单一目录的软件,卸载时用命令"rm-rf
软件目录名";如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),想知道解压时向系统中安装了哪些文件,可以用命令"tar ztvf
*.tar.gz"/"tar ytvf
*.bz2"获取清单。tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。更多的参
数请参看手册页:man tar.
如果你更喜欢图形界面的操作,可以到Ubuntu上看看他的包管理,超级方便。
3、提供安装程序的软件包
这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安
装;而卸载时也相应地提供了反安装的脚本或程序。例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提
供反安装的功能,目前这种类型的软件包还比较少,因其安装与卸载的方式与Windows软件一样,所以就无需多讲了。
二、源代码分发软件包的安装与卸载
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。
1、*.src.rpm形式的源代码软件包
安装:rpm-rebuild*.src.rpm
cd/usr/src/dist/RPMS
rpm-ivh*.rpm
卸载:rpm-e packgename
说明:rpm--rebuild*.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。
2、*.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf*.tar.gz或 tar yxvf*.bz2先解压
然后进入解压后的目录:
./configure配置
make编译
make install安装
卸载:make uninstall或手动删除
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make
install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,
那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure--prefix=目录名,这样可以使用"rm-rf
软件目录名"命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最麻烦的,其实我个人认为,以后会越来越少人用这种方法。因为现在的
硬件发展到没有必要多这少量的性能,来浪费这么多时间。
三。使用yum和apt-get.软件管理方法的升级。
看过上面的介绍。大家一定会感觉,太麻烦了,下面这个是先进的linux才有的功能,这个实在太方便了,比windows还人方便,要是你用过Ubuntu的apt-get你会感觉爽极了的。那个方便。
1.我们来先讲Redhat的yum这种高级的包管理。
用YUM安装删除软件
装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。
安装的命令是,yum install xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。
删除的命令是,yum remove xxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。
用YUM安装软件包
命令:yum install
用YUM删除软件包
命令:yum remove
2.用YUM查询软件信息
我
们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用 yum
search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用
yum search
messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于是我们可能得到
gaim,kopete等等,并从中选择。
有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。
使用YUM查找软件包
命令:yum search
列出所有可安装的软件包
命令:yum list
列出所有可更新的软件包
命令:yum list updates
列出所有已安装的软件包
命令:yum list installed
列出所有已安装但不在 Yum Repository内的软件包
命令:yum list extras
列出所指定的软件包
命令:yum list
2.讲讲Ubuntu中的高级包管理方法apt-get
除了apt的便捷以外,apt-get的一大好处是极大地减小了所谓依赖关系恶梦的发生
几率(dependency hell),即使是陷入了dependency hell,apt-get也提供了很好的
援助手段,帮你逃出魔窟。
通常 apt-get都和网上的压缩包一起出没,从互联网上下载或是安装。全世界有超
过200个 debian官方镜像,还有繁多的非官方软件包提供网站。你所使用的基于D
ebian的发布版不同,你所使用的软件仓库可能需要手工选择或是可以自动设置。你
能从Debian官方网站得到完整的镜像列表。而很多非官方网站提供各种特殊用途的
非官方软件包,当然,使用非官方软件包会有更多风险了。
软件包都是为某一个基本的Debian发布版所准备的(从unstable到stable),并且划
分到不同类别中(如 main contrib nonfree),这个是依据 debian自由软件纲领而
划分的(也就是常说的dfsg),因为美国限制加密软件出口,还有一个non-us类别。
常用的APT命令参数
apt-cache search package搜索包
apt-cache show package获取包的相关信息,如说明、大小、版本等
sudo apt-get install package安装包
sudo apt-get install package-- reinstall重新安装包
sudo apt-get-f install修复安装"-f=--fix-missing"
sudo apt-get remove package删除包
sudo apt-get remove package-- purge删除包,包括删除配置文件等
sudo apt-get update更新源
sudo apt-get upgrade更新已安装的包
sudo apt-get dist-upgrade升级系统
sudo apt-get dselect-upgrade使用 dselect升级
apt-cache depends package了解使用依赖
apt-cache rdepends package是查看该包被哪些包依赖
sudo apt-get build-dep package安装相关的编译环境
apt-get source package下载该包的源代码
sudo apt-get clean&& sudo apt-get autoclean清理无用的包
sudo apt-get check检查是否有损坏的依赖
如何在CentOS或RHEL上搭建Squid透明Web代理系统
使用透明代理有几个好处。首先,对最终用户来说,透明代理可以改善上网浏览体验,因为缓存了经常访问的网站内容,同时给他们带来的配置开销最小。对管理员来说,透明代理可用于执行各种管理政策,比如内容/URL/IP过滤和速率限制等。
代理服务器充当客户端和目的地服务器之间的中介。客户端将请求发送到代理服务器,随后代理服务器评估请求,并采取必要的动作。在本教程中,我们将使用Squid搭建一个Web代理服务器,而Squid是一种健壮的、可定制的、稳定的代理服务器。就个人而言,大概一年来我管理着一台拖有400多个客户端工作站的Squid服务器。虽然平均而言我大概一个月就要重启一次服务,但处理器和存储使用率、吞吐量以及客户端响应时间都表现不错。
我们将配置Squid以获得下列拓扑结构。CentOS/RHEL设备有一块网卡(eth0)连接到专有局域网,另一块网卡(eth1)则连接到互联网。
Squid的安装
想使用Squid搭建透明代理系统,我们首先要添加必要的iptables规则。这些规则应该会帮助你开始上手,不过务必要确保它们与任何的现有配置没有冲突。
# iptables-t nat-A POSTROUTING-o eth1-j MASQUERADE# iptables-t nat-A PREROUTING-i eth0-p tcp--dport 80-j REDIRECT--to-port 3128
第一条规则将引起来自eth1(广域网接口)的所有出站数据包都有eth1的源IP地址(也就是启用NAT)。第二条规则将把来自eth0(局域网接口)的所有入站HTTP数据包(发往TCP 80)重定向至Squid侦听端口(TCP 3128),而不是直接将其转发到广域网接口。
我们使用yum,开始安装Squid。
# yum install squid
现在,我们将改动Squid配置,将其变成透明代理系统。我们将局域网子网(比如10.10.10.0/24)定义为有效的客户端网络。不是来自该局域网子网的任何流量将被拒绝访问。
# vim/etc/squid/squid.conf visible_hostname proxy.example.tst http_port 3128 transparent##定义我们的网络## acl our_network src 10.10.10.0/24##确保我们的网络允许访问## http_access allow our_network##最后拒绝其他的所有流量## http_access deny all
现在我们开启Squid服务,确保它已被添加到启动项。
# service squid start# chkconfig squid on
鉴于Squid已搭建并运行起来,我们可以测试其功能了,为此只需监测Squid日志。从连接至该局域网的计算机访问任何URL,你应该会在日志中看到类似以下的内容。
# tailf/var/log/squid/access.log 1402987348.816 1048 10.10.10.10 TCP_MISS/302 752 GET DIRECT/173.194.39.178 text/html 1402987349.416 445 10.10.10.10 TCP_MISS/302 762 GET DIRECT/173.194.78. 94 text/html
据日志文件显示,IP地址为10.10.10.10的机器试图访问google.com,Squid处理了这个请求。
一种最基本的Squid代理服务器现已准备就绪。在本教程的余下部分,我们将调整Squid的一些参数,以控制出站流量。请注意:这仅仅为了演示。实际的政策应加以定制,以满足你的具体要求。
准备工作
在开始配置之前,我们先明确几个要点。
Squid配置解析
在阅读配置文件时,Squid以一种自上而下的方式来解析文件。自上而下地解析规则,直到发现匹配为止。一旦发现匹配,该规则就被执行;其下面的其他任何规则将被忽视。所以,添加过滤规则的最佳实践就是,按下列顺序指定规则。
explicit allow
explicit deny
allow entire LAN
deny all
Squid重启与Squid重新配置
一旦Squid配置经过改动,Squid服务就需要重启。重启服务可能需要一段时间,有时要几分钟,长短取决于活动连接的数量。在这个期间,局域网用户无法访问互联网。想避免这种服务中断,我们可以使用下面这个命令,而不是使用“service squid restart”。
# squid-k reconfigure
该命令将允许Squid使用更新后的参数来运行,而不需要重启本身。
按照IP地址过滤局域网主机
在这个演示中,我们想要搭建这样的Squid:禁止拥有IP地址10.10.10.24的主机和IP地址10.10.10.25的主机访问互联网。为此,我们创建了一个文本文件“denied-ip-file”,里面含有所有被拒绝访问的主机的IP地址,然后将该文件添加到Squid配置中。
# vim/etc/squid/denied-ip-file 10.10.10.24 10.10.10.25# vim/etc/squid/squid.conf##首先我们创建访问控制列表(ACL),隔离被拒绝访问的IP地址##acl denied-ip-list src"/etc/squid/denied-ip-file"##然后,我们应用ACL## http_access deny denied-ip-list##明确拒绝## http_access allow our_network##允许局域网## http_access deny all##拒绝所有deny all##
现在我们需要重启Squid服务。Squid将不再认可来自这些IP地址的请求。如果我们检查squid日志,就会发现来自这些主机的请求处于“TCP_DENIED”状态。
过滤黑名单中的网站
这个方法将只适用于HTTP。假设我们想阻止badsite.com和denysite.com,就可以将这两个网址添加到文件,并且将引用添加到squid.conf。
# vim/etc/squid/badsite-file badsite denysite# vim/etc/squid/squid.conf## ACL定义##acl badsite-list url_regex"/etc/squid/badsite-file"## ACL应用## http_access deny badsite-list http_access deny denied-ip-list##之前设置,但这里不起作用## http_access allow our_network http_access deny all
请注意:我们使用了ACL类型“url_regex”,这将与所请求的URL中的“badsite”和“denysite”这两个词相匹配。也就是说,凡是在URL中含有“badsite”或“denysite”(比如badsite.org、newdenysite.com或otherbadsite.net)的请求一律被阻止。
合并多个ACL
我们将创建一个访问列表,阻止IP地址为10.10.10.200的客户端和IP地址为10.10.10.201的客户端访问custom-block-site.com。其他任何客户端都能够访问该网站。为此,我们将首先创建一个访问列表以隔离这两个IP地址,然后创建另一个访问列表以隔离所需的网站。最后,我们将同时使用这两个访问列表,以满足要求。
# vim/etc/squid/custom-denied-list-file 10.10.10.200 10.10.10.201# vim/etc/squid/custom-block-website-file custom-block-site# vim/etc/squid/squid.conf acl custom-denied-list src"/etc/squid/custom-denied-list-file" acl custom-block-site url_regex"/etc/squid/custom-block-website-file"## ACL应用## http_access deny custom-denied-list custom-block-site http_access deny badsite-list##之前设置,但这里不起作用## http_access deny denied-ip-list##之前设置,但这里不起作用## http_access allow our_network http_access deny all# squid-k reconfigure
被阻止的主机现在应该无法访问上述网站了。日志文件/var/log/squid/access.log应该含有相应请求的“TCP_DENIED”。
设定最大下载文件大小
Squid可以用来控制最大的可下载文件大小。我们想把IP地址为10.10.10.200的主机和IP地址为10.10.10.201的主机的最大下载大小限制在50MB。我们之前已经创建了ACL“custom-denied-list”,以隔离来自这些源地址的流量。现在,我们将使用同一个访问列表来限制下载文件大小。
# vim/etc/squid/squid.conf reply_body_max_size 50 MB custom-denied-list# squid-k reconfigure
建立Squid缓存层次体系
Squid支持缓存的方式是,将经常访问的文件存储在本地存储系统中。设想一下:你的局域网上有100个用户在访问google.com。要是没有缓存功能,就要为每一个请求单独获取Google标识或涂鸦。Squid可以将标识或涂鸦存储在缓存中,以便从缓存来提供。这不仅改善了用户感觉得到的性能,还减少了带宽使用量。这可以说是一举两得。
想启用缓存功能,我们可以改动配置文件squid.conf。
# vim/etc/squid/squid.conf cache_dir ufs/var/spool/squid 100 16 256
数字100、16和256有下列含义。
•为Squid缓存分配100 MB存储空间。如果你愿意,也可以加大所分配的空间。
•16个目录(每个目录里面含有256个子目录)将用于存储缓存文件。这个参数不应该改动。
我们可以通过日志文件/var/log/squid/access.log来证实Squid缓存是否被启用。如果缓存成功命中,我们应该会看到标有“TCP_HIT”的项。
总而言之,Squid是一种功能强大的、基于行业标准的Web代理服务器,被全球各地的系统管理员们广泛使用。Squid提供了简易的访问控制功能,可用于管理来自局域网的流量。它既可以部署到大企业网络中,也可以部署到小公司网络中。