虚拟主机默认是没有开启swap功能的。对于最低配的512M内存的主机,一般需要一个512M或者1G的swap比较好,不然内存很可能不够用导致进程挂掉。
手动配置swap。
首先要创建一个swap格式的文件:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
dd命令是专门用来从一个文件复制并格式成另一个文件。这条命令的意思是从"/dev/zero"文件读出内容并存到/swapfile文件中,块大小为1024Byte,总共 512 K个块,也就是总共 512M。
然后设置并开启交换文件:
sudo mkswap /swapfile
sudo swapon /swapfile
最后设置开机自动装载swap文件:
编辑 /etc/fstab ,加入如下一行:
/swapfile none swap defaults 0 0
/etc/fstab 是存放文件系统信息的地方,系统启动的时候会自动从这里面读取并装载文件系统。其中前三个参数并别表示:
要装载的文件系统物理位置(就是我们上一步创建的那个swap文件),挂载点(对于swap设置为none就行了),文件格式(swap格式)
然后用free命令查看下内存使用情况,在物理内存下应该能看到swap的信息:
total used free shared buffers cached
Mem: 1027156 721928 305228 0 9840 267224
-/+ buffers/cache: 444864 582292
Swap: 524284 0 524284
或者用swapon -s直接查看swap信息:
Filename Type Size Used Priority
/swapfile file 524284 0 -1
ubuntu 系统默认已安装ufw.
1.安装
sudo apt-get install ufw
2.启用
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
3.开启/禁用
sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
4.查看防火墙状态
sudo ufw status
一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。
开启/关闭防火墙 (默认设置是’disable’)
sudo ufw enable|disable
转换日志状态
sudo ufw logging on|off
设置默认策略 (比如 “mostly open” vs “mostly closed”)
sudo ufw default allow|deny
许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务
名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
sudo ufw allow|deny [service]
显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
sudo ufw status
UFW 使用范例:
允许 53 端口
$ sudo ufw allow 53
禁用 53 端口
$ sudo ufw delete allow 53
允许 80 端口
$ sudo ufw allow 80/tcp
禁用 80 端口
$ sudo ufw delete allow 80/tcp
允许 smtp 端口
$ sudo ufw allow smtp
删除 smtp 端口的许可
$ sudo ufw delete allow smtp
允许某特定 IP
$ sudo ufw allow from 192.168.254.254
删除上面的规则
$ sudo ufw delete allow from 192.168.254.254
5、开启/禁用相应端口或服务(举例说明)
sudo ufw allow 80 允许外部访问本机80端口
sudo ufw delete allow 80 禁止外部访问本机80 端口
sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒绝所有的流量从TCP的10.0.0.0/8 到端口22的地址192.168.0.1
可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级):
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16
6、更详细的说明
[]是代表可选内容。可能需要root权限,如无法运行,请使用 sudo ufw……的命令结构。“”中的内容不能照抄,要按需要更改。
ufw [--dry-run] enable|disable|reload
命令[–试运行]激活|关闭|重新载入
ufw [--dry-run] default allow|deny|reject [incoming|outgoing]
命令[–试运行]默认 允许|阻止|拒绝 [访问本机的规则|向外访问的规则]
注:reject让访问者知道数据被拒绝(回馈拒绝信息)。deny则直接丢弃访问数据,访问者不知道是访问被拒绝还是不存在该主机。
ufw [--dry-run] logging on|off|LEVEL
命令[–试运行]日志 开启|关闭|“级别”
ufw [--dry-run] reset
命令[–试运行]复位
ufw [--dry-run] status [verbose|numbered]
命令[–试运行]状态 [详细|被编号的规则]
ufw [--dry-run] show REPORT
命令[–试运行]显示 “报告类型”
ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit [in|out][log|log-all] PORT[/protocol]
命令[–试运行][删除] [插到“x号规则”之前] 允许|阻止|拒绝|限制 [进|出] [记录新连接|记录所有数据包] “端口” [/“协议”]
ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit [in|out on INTERFACE] [log|log-all] [proto protocol] [from ADDRESS [port PORT]] [to ADDRESS [port PORT]]
命令 [–试运行][删除][插到x号规则之前] 允许|阻止|拒绝|限制 [进|出 基于“什么网络设备”] [协议 “协议”] [来源 “地址” [端口 “端口”]] [目标 “地址” [端口 “端口”]]
ufw [--dry-run] delete NUM
命令[–试运行] 删除 “第X号规则”
ufw [--dry-run] app list|info|default|update
命令 [–试运行] 程序 清单|信息|默认|更新
参数
–version
显示程序版本号
-h , –help
显示帮助信息
–dry-run
不实际运行,只是把涉及的更改显示出来。
enable
激活防火墙,开机时自动启动
disable
关闭防火墙,开机时不启动
reload
重新载入防火墙
default allow|deny|reject 方向
方向是指:向内(incoming)|向外(outgoing)。如果更改了默认策略,一些已经存在的规则可能需要手动修改。更多内容看“规则示例”一节。
logging on|off|“级别”
切换日志状态。日志记录包使用的是系统日志。“级别”有好几个,默认是低级(low)。详细内容看“日志”一节。
reset [--force]
关闭防火墙,并复位至初始安装状态。如果使用–force选项,则忽略确认提示。
status
显示防火墙的状态和已经设定的规则。使用status verbose显示更详细的信息。‘anywhere’与‘any’、‘0.0.0.0/0’一个意思。
show “报告类型”
显示防火墙运行信息。详细内容看“报告类型”
limit “规则”
此命令目前只能用于IPv4。还不支持IPv6.
规则示例
规则可以简写也可以完整表达。简写的规则只能指定端口和(或)协议被允许或阻止。默认是访问本机的规则(incoming)。例如:
ufw allow 53
允许其它机子访问本机53端口,协议包含tcp和udp。
如果要控制协议,只要加入“/协议”在端口后面就行了。例如:
ufw allow 25/tcp
允许其它机子使用tcp协议访问25端口。
UFW也可以检查 /etc/services文件,明白服务的名字及对应的端口和协议。我们使用服务的名称即可。
ufw allow smtp
UFW同时支持出入口过滤。用户可以使用in或out来指定向内还是向外。如果未指定,默认是in。例如:
ufw allow in http
ufw reject out smtp
ufw deny out to 192.168.1.1
阻止向192.168.1.1发送信息
用户也可使用完整的规则来指定来源与目的地,还有端口。书写规则基于OpenBSD PF。举例:
ufw deny proto tcp to any port 80
阻止本机用tcp协议在80端口发数据
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25
This will deny all traffic from the RFC1918 Class A network to tcp port 25 with the address 192.168.0.1.(这条命令目前无法翻译 from 和 to的关系,希望后来者更改)
ufw也可以使用IPv6协议。但要事先在/etc/default/ufw 中设定IPv6为启动状态。举例:
ufw deny proto tcp from 2001:db8::/32 to any port 25
阻止IPv6为2001:db8::/32类型的地址,连接本机25端口
ufw可以连续例举端口号。端口号间必须使用逗号或分号,不能使用空格。“输入端口号”字符数最多不能超过15过(8080:8090算两个字符)。比如允许80,443,8080~8090这几个端口接受tcp传入连接。
ufw allow proto tcp from any to any port 80,443,8080:8090
此例,“输入端口号”字符数为4个。
ufw可以对连接数率进行限制,以防范暴力登录攻击。如果同一个IP地址在30秒之内进行了6次及6次以上的连接,ufw将阻止(deny)该连接。可以查看更多信息。
ufw limit ssh/tcp
当然有些时候我们想让访问者知道他的访问被拒绝了,而不是保持沉默让他不知道哪出了问题。就使用reject代替deny
ufw reject auth
默认情况下ufw的所有规则针对所有网络设备(比如网卡1,网卡2,无线网卡1,虚拟网卡1……)。但是我们可以特别指定,某规则在什么网络设备上生效。注意只能使用设备号,不能用别名。比如有线网卡:eth0(你可以使用ifconfig命令查看你现有的网络设备)
ufw allow in on eth0 to any port 80 proto tcp
要删除规则,只要在命令中加入delete就行了。比如:
ufw deny 80/tcp
要删除这条命令建立的规则,使用:
ufw delete deny 80/tcp
当然,也可以使用规则号来进行删除。比如要第3号规则
ufw delete 3
注意,如果你开启IPv6功能。要同时删除IPv4和IPv6的规则(比如:ufw allow 22/tcp),如果用规则号的方式删除可能只删除了一个。
显示第几号规则,可以使用这样的命令
ufw status numbered(也就是规则号)
日志功能。如果使用log将记录所有符合规则的新连接,如果使用log-all将记录所有符合规则的数据包。例如,要允许并记录shh(22/tcp)上的新连接:
ufw allow log 22/tcp
更多内容看“日志”一节
特殊例子: 允许RFC1918网络结构访问本机:
ufw allow from 10.0.0.0/8
ufw allow from 172.16.0.0/12
ufw allow from 192.168.0.0/16
最后一条经过测试,范围大约是192.168.0.0~192.168.225.225。当然,涉及很多专业知识,希望有人补充。
远程管理
此章节还未被编辑
应用程序集成管理
ufw能从 /etc/ufw/applications.d. 中读取应用程序清单。你可以使用命令查看:
ufw app list
大家可以使用应用程序名字来增加规则。比如
ufw allow <程序名字>
ufw allow CUPS
ufw allow from 192.168.0.0/16 to any app <程序名字>
注意,端口号已经被程序名所对应的策略所包括,不要再重新列举端口号。
查看程序名所对应的策略内容,命令:
ufw app into <程序名字>
注意:程序名字是清单上有的才行。程序名字改用用all,可以看全部策略。
如果你编辑或者增加了程序清单,你可使用此命令更新防火墙:
ufw app update <程序名字>
程序名字改用用all,则更新整个清单。
更新清单同时增加规则可以使用如下命令:
ufw app update –add-new <程序名字>
注意:update –add-new参数的行为由此命令配置:
ufw app default skip|allow|deny
默认是skip,也就是没有设定。
警告:如果程序规则设定为default allow ,将会引起很大的风险。请三思而后行!
日志
ufw支持许多日志级别。默认是低级(low),用户也可以自己指定:
ufw logging on|off|low|medium|high|full
off 就是关闭日志
low 记录与默认策略冲突的封装数据包(记录速度被限制)。记录与规则符合的数据包(没有要求关闭记录的)
medium 记录与默认策略冲突的数据包(包括被规则允许的)、无效数据包、所有新连接。记录速度被限制。
high 同medium,只是没有记录速度限制。附加记录所有数据包(有记录速度限制)。
full 与high等同,只是取消记录限制。
medium级别及更上级会记录许多内容,有可能短时间内撑爆你的硬盘。特别是用在服务器一类的机器上。
on与off只是起开关作用,不代表级别。
查看软件xxx安装内容
dpkg -L xxx
查找软件
apt-cache search 正则表达式
查找文件属于哪个包
dpkg -S filename
apt-file search filename
查询软件xxx依赖哪些包
apt-cache depends xxx
查询软件xxx被哪些包依赖
apt-cache rdepends xxx
增加一个光盘源
sudo apt-cdrom add
系统升级
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
清除所以删除包的残余配置文件
dpkg -l |grep ^rc|awk '{print $2}' |tr ["n"] [" "]|sudo xargs dpkg -P -
编译时缺少h文件的自动处理
sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录
ls /var/cache/apt/archives
备份当前系统安装的所有包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
从上面备份的安装包的列表文件恢复所有包
dpkg --set-selections < ~/somefile
sudo dselect
清理旧版本的软件缓存
sudo apt-get autoclean
清理所有软件缓存
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove
查看包在服务器上面的地址
apt-get -qq --print-uris install ssh | cut -d' -f2
系统 查看内核
uname -a
查看Ubuntu版本
cat /etc/issue
查看内核加载的模块
lsmod
查看PCI设备
lspci
查看USB设备
lsusb
查看网卡状态
sudo ethtool eth0
查看CPU信息
cat /proc/cpuinfo
显示当前硬件信息
lshw
硬盘 查看硬盘的分区
sudo fdisk -l
查看IDE硬盘信息
sudo hdparm -i /dev/hda
查看STAT硬盘信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬盘剩余空间
df -h
df -H
查看目录占用空间
du -hs 目录名
优盘没法卸载
sync
fuser -km /media/usbdisk
内存 查看当前的内存使用情况
free -m
进程 查看当前有哪些进程
ps -A
中止一个进程
kill 进程号(就是ps -A中的第一列的数字)
或者 killall 进程名
强制中止一个进程(在上面进程中止不成功的时候使用)
kill -9 进程号
或者 killall -9 进程名
图形方式中止一个程序
xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
查看当前进程的实时状况
top
查看进程打开的文件
lsof -p
ADSL 配置 ADSL
sudo pppoeconf
ADSL手工拨号
sudo pon dsl-provider
激活 ADSL
sudo /etc/ppp/pppoe_on_boot
断开 ADSL
sudo poff
查看拨号日志
sudo plog
如何设置动态域名
#首先去 http://www.3322.org 申请一个动态域名
#然后修改 /etc/ppp/ip-up 增加拨号时更新域名指令
sudo vim /etc/ppp/ip-up
#在最后增加如下行
w3m -no-cookie -dump 'http://username:password@members.3322.org/dyndns/update?system=dyndns&ho...'
网络 根据IP查网卡地址
arping IP地址
查看当前IP地址
ifconfig eth0 |awk '/inet/ {split($2,x,":");print x[2]}'
查看当前外网的IP地址
w3m -no-cookie -dump www.ip138.com|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
w3m -no-cookie -dump www.123cha.com|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
查看当前监听80端口的程序
lsof -i :80
查看当前网卡的物理地址
arp -a | awk '{print $4}'
ifconfig eth0 | head -1 | awk '{print $5}'
立即让网络支持nat
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -I POSTROUTING -j MASQUERADE
查看路由信息
netstat -rn
sudo route -n
手工增加删除一条路由
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
修改网卡MAC地址的方法
sudo ifconfig eth0 down #关闭网卡
sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址
sudo ifconfig eth0 up #然后启动网卡
统计当前IP连接的个数
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
统计当前20000个IP包中大于100个IP包的IP地址
tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '
屏蔽IPV6
echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6
服务 添加一个服务
sudo update-rc.d 服务名 defaults 99
删除一个服务
sudo update-rc.d 服务名 remove
临时重启一个服务
/etc/init.d/服务名 restart
临时关闭一个服务
/etc/init.d/服务名 stop
临时启动一个服务
/etc/init.d/服务名 start
设置 配置默认Java使用哪个
sudo update-alternatives --config java
修改用户资料
sudo chfn userid
给apt设置代理
export http_proxy=http://xx.xx.xx.xx:xxx
修改系统登录信息
sudo vim /etc/motd
中文 转换文件名由GBK为UTF8
sudo apt-get install convmv
convmv -r -f cp936 -t utf8 --notest --nosmart *
批量转换src目录下的所有文件内容由GBK到UTF8
find src -type d -exec mkdir -p utf8/{} ;
find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} ;
mv utf8/* src
rm -fr utf8
转换文件内容由GBK到UTF8
iconv -f gbk -t utf8 $i > newfile
转换 mp3 标签编码
sudo apt-get install python-mutagen
find . -iname “*.mp3” -execdir mid3iconv -e GBK {} ;
控制台下显示中文
sudo apt-get install zhcon
使用时,输入zhcon即可
文件 快速查找某个文件
whereis filename
find 目录 -name 文件名
查看文件类型
file filename
显示xxx文件倒数6行的内容
tail -n 6 xxx
让tail不停地读地最新的内容
tail -n 10 -f /var/log/apache2/access.log
查看文件中间的第五行(含)到第10行(含)的内容
sed -n '5,10p' /var/log/apache2/access.log
查找包含xxx字符串的文件
grep -l -r xxx .
查找关于xxx的命令
apropos xxx
man -k xxx
通过ssh传输文件
scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上
scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地
查看某个文件被哪些应用程序读写
lsof 文件名
把所有文件的后辍由rm改为rmvb
rename 's/.rm$/.rmvb/' *
把所有文件名中的大写改为小写
rename 'tr/A-Z/a-z/' *
删除特殊文件名的文件,如文件名:--help.txt
rm -- --help.txt 或者 rm ./--help.txt
查看当前目录的子目录
ls -d */. 或 echo */.
将当前目录下最近30天访问过的文件移动到上级back目录
find . -type f -atime -30 -exec mv {} ../back ;
将当前目录下最近2小时到8小时之内的文件显示出来
find . -mmin +120 -mmin -480 -exec more {} ;
删除修改时间在30天之前的所有文件
find . -type f -mtime +30 -mtime -3600 -exec rm {} ;
查找guest用户的以avi或者rm结尾的文件并删除掉
find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} ;
查找的不以java和xml结尾,并7天没有使用的文件删除掉
find . ! -name *.java ! -name ‘*.xml’ -atime +7 -exec rm {} ;
统计当前文件个数
ls /usr/bin|wc -w
统计当前目录个数
ls -l /usr/bin|grep ^d|wc -l
显示当前目录下2006-01-01的文件名
ls -l |grep 2006-01-01 |awk '{print $8}'
压缩 解压缩 xxx.tar.gz
tar -zxvf xxx.tar.gz
解压缩 xxx.tar.bz2
tar -jxvf xxx.tar.bz2
压缩aaa bbb目录为xxx.tar.gz
tar -zcvf xxx.tar.gz aaa bbb
压缩aaa bbb目录为xxx.tar.bz2
tar -jcvf xxx.tar.bz2 aaa bbb
Nautilus 显示隐藏文件
Ctrl+h
显示地址栏
Ctrl+l
特殊 URI 地址
* computer:/// - 全部挂载的设备和网络
* network:/// - 浏览可用的网络
* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
* smb:/// - 可用的 windows/samba 网络资源
* x-nautilus-desktop:/// - 桌面项目和图标
* file:/// - 本地文件
* trash:/// - 本地回收站目录
* ftp:// - FTP 文件夹
* ssh:// - SSH 文件夹
* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装
* themes:/// - 系统主题文件夹
查看已安装字体
在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts
程序 详细显示程序的运行信息
strace -f -F -o outfile <cmd>
日期和时间 设置日期
#date -s mm/dd/yy
设置时间
#date -s HH:MM
将时间写入CMOS
hwclock --systohc
读取CMOS时间
hwclock --hctosys
从服务器上同步时间
sudo ntpdate time.nist.gov
sudo ntpdate time.windows.com
控制台 不同控制台间切换
Ctrl + ALT + ←
Ctrl + ALT + →
指定控制台切换
Ctrl + ALT + Fn(n:1~7)
控制台下滚屏
SHIFT + pageUp/pageDown
控制台抓图
setterm -dump n(n:1~7)
数据库 mysql的数据库存放在地方
/var/lib/mysql
从mysql中导出和导入数据
mysqldump 数据库名 > 文件名 #导出数据库
mysqladmin create 数据库名 #建立数据库
mysql 数据库名 < 文件名 #导入数据库
忘了mysql的root口令怎么办
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysqladmin -u user password 'newpassword''
sudo mysqladmin flush-privileges
修改mysql的root口令
sudo mysqladmin -uroot -p password '你的新密码'
其它 下载网站文档
wget -r -p -np -k http://www.21cn.com
· -r:在本机建立服务器端目录结构;
· -p: 下载显示HTML文件的所有图片;
· -np:只下载目标站点指定目录及其子目录的内容;
· -k: 转换非相对链接为相对链接。
如何删除Totem电影播放机的播放历史记录
rm ~/.recently-used
如何更换gnome程序的快捷键
点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;
如果要清除该快捷键,请使用backspace
vim 如何显示彩色字符
sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc
如何在命令行删除在会话设置的启动程序
cd ~/.config/autostart
rm 需要删除启动程序
1、查看ARP缓存表 Router #show ip arp
2、查看路由表 Router #show ip route
3、查看接口状态 Router #show interface f0/0
4、查看基本配置 Router #show running-config
5、查看版本信息 Router #show version
6、查看路由器当前时间 Router #show clock
7、查看路由协议配置 Router #show ip protocol
8、打开RIP协议调试命令 Router #debug ip rip
9、检测PPP连接状态和协商过程 Router #debug ppp packet
10、查OSPF邻居列表 Router #show ip ospf neighbor (detail)详细
11、查链路状态数据库 Router #show ip ospf database
12、查OSPF的配置 Router #show ip ospf
13、查OSPF的接口数据结构 Router #show ip ospf interface 接口
14、查一条网络LSA通告信息 Router #show ip ospf database network
15、显示链路状态数据库中的网络汇总LSA信息 Router #show ip ospf database summary
16、查看数据库中列出的所有路由的LSA通告 Router #show ip ospf database router
17、查看ASBR汇总LSA的信息 Router #show ip ospf database asbr-summary
18、查看AS外部LSA的信息 Router #show ip ospf database external
19、查NSSA外部LSA通告的信息 Router #show ip ospf database nssa-external
20、查用来表示到达ABR和ASBR路由哭的路由 Router #show ip ospf border-routers
21、查看OSPF协议配置信息 Router #show ip protocol
22、查看路由器“邻接”的整个过程 Router #debug ip ospf adj
23、查看每个OSPF数据包的信息 Router #debug ip ospf packet
24、清空路由表 Router #clear ip route *
25、查一条虚链路的状态 Router #show ip ospf virtual-link
26、查看HSRP配置
27、查看HSRP的状态 Router #show standby 1(组号) brief
28、启用调试功能HSRP Router #debug standby
29、查看串行链路的状态 Router #show controllers s0/0
30、显示路由器内存的大小,包括空闲内存的大小 Router #Show memory
31、显示路由器的进程 Router #Show processes
32、显示缓存器统计信息 Router #how buffers
33、显示CDP表中所列相邻设备的信息 Router #Show cdp entry
34、显示闪存的布局和内容信息 Router #Show flash
35、显示关于本地管理接口(LMI)的统计信息 Router #Show frame-relay lmi
36、显示关于连接的当前映射入口和信息 Router #Show frame-relay map
37、显示关于帧中继接口的永久虚电路(pvc)的统计信息 Router #Show frame-relay pvc
38、显示所有连接到路由器的用户 Router #show users
39、显示当前存在的转换 Router#show ip nat translations
40、查看NAT的统计信息 Router#show ip nat statistics
41、查看IKE策略 Router# show crypto isakmp policy
42、查看IPsce策略 Router# show crypto ipsec transform-set
43、查看SA信息 Router# show crypto ipsec sa
44、查看加密映射 Router# show crypto map
一. 代理服务简介
1. 什么是代理服务器(Proxy Server)
代理服务可以代表其它计算机传递数据包或信息,这些数据包和信息包括网页、电子邮件、多媒体文件和其它网络应用程序等。通过它的文件缓存和访问控制等功能,可以实现快速浏览和对用户访问的有效管理。
Web代理服务器(通常所说的代理服务器)是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
更重要的是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层。主要的功能有:
1、连接Internet与Intranet 充当firewall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置 IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息。
2、共享因特网连接,节省IP开销:如前面所讲,所有用户对外只占用一个IP,所以不必租用过多的IP地址,降低网络的维护成本。这样,局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网,大大减少费用。当然也有它不利的一面,如许多网络黑客通过这种方法隐藏自己的真实IP地址,而逃过监视。
3、提高访问速度,节约通信带宽。而且通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。
2. 代理服务器的硬件需求
代理服务器对于硬件的要求相当的高!因为我们架设代理服务器的目的就是希望能够加快网络的传输速度因此,虽然代理服务器几乎在任何的 Linux 系统上面都能跑,但是代理服务器最好还是有较高的硬件配置:
CPU 足够好;
RAM 足够大,这也是很重要的一个硬件参数
Hard Disk 最好能用 SCSI 接口的,因为速度与稳定度都比较好!如果不能的话,那么 IDE 接口的硬盘由于目前速度也越来越快,所以使用 IDE 也没有问题,但是最好是『多块硬盘』的架构,例如我总共需要 30 GB 的硬盘空间,那么最好是 10 GB 的硬盘三块这样的架构较佳。 最好在架设代理服务器时,将整体主机的规划做好,并且让代理服务器主机的服务单纯一点,最好只负责代理服务
每颗硬盘的容量不需要太大,此外,最好将硬盘分割一下,一个分区在 2~4 GB 之间即可,因为分太大的话资料的搜寻耗费时间较长,但是分区太小又可能造成空间的浪费
cache 是放置在某个目录下的,而最好一个目录底下就是独立的一个 partition 。此外,由于 cache 所在的硬盘常常会有资料的存取,因此可能此一硬盘的损耗率会比较大,所以这个 cache 所在的硬盘最好不要跟重要数据文件,例如 /, /etc, /usr, /home 等等重要的系统文件放在一起!
也由于 cache 所在的硬盘资料存取太密集了,所以,硬盘的选择上面需要 (1)转速不能太低; (2)磁头的机械臂需要可以忍受频繁的动作;(3)发热量不可太大,或者可以考虑加装硬盘用风扇。
网络卡与网络周边最好使用 GBytes 的网络卡
3. 使用squid的好处 squid是开源软件,性能优秀。并仍在世界各地的squid开发者的共同努力下,不断发展。快速响应,减少网络阻塞,Squid将远程Internet对象保存为本地拷贝。当本地用户再次访问这些对象时,Squid可以直接快速地提供对这些对象的访问,而不必再次占用带宽访问远程服务器上的对象。 增强访问控制,提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制 squid可以工作在普通代理模式、透明代理模式各反向代理模式
4. squid的结构 多个squid代理服务器可以通过icp协议相互沟通,形成树形层次关系(父代理、兄弟代理、子代理),构建代理服务器群。
二. squid.conf的典型配置(普通代理)
1. 配置 #vi /etc/squid/squid.conf #http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是
http_port 192.168.63.50:3128
http_port 3128
icp_port 3130
#缓存目录的设置,可以设置多个缓存目录,语法为:<cache_dir> <aufs|ufs> <目录所在> <MBytes大小> <dir1> <dir2>
cache_dir ufs /var/spool/squid 1000 64 1024
#下面是关于日志文件的放置目录与文件名!
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log pid
_filename /var/run/squid.pid
#关闭认证机制,有些版本的 squid 会自动的加入代理认证机制,而普通情况下是不需要的,故找到包括auth_param的行,给它们加上注释
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#设置squid用户及用户组、管理员账号
cache_effective_user squid
cache_effective_group squid
cache_mgr youraccount@your.e.mail
# 与内存有关的配置:因为我的系统内存很小,所以只给 8 MB!如果您的物理内存很大的情况下,例如 512 MB,可以考虑加大到 64 或 128 MB。
cache_mem 128 MB
# 与磁盘容量有关的配置(注:下列的 90 与 95 是百分比 ),如果您的 cache_dir 所在磁盘很大时,可以考虑将 4096 改成 32768 KB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
# 与内存保存资料有关的配置
maximum_object_size_in_memory 8 KB
#定义acl(访问控制列表), 语法为:acl<acl> <acl名称> <acl类型> <配置的内容>
#黑体为用户自定义部分 acl All src 0/0
acl Manager proto cache_object
acl Localhost src 127.0.0.1/32
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535
acl SSL_ports 443 563
acl CONNECT method CONNECT
acl MyNetwork src 192.168.0.0/16
#利用前面定义的acl,定义访问控制规则
http_access allow Manager Localhost
http_access deny Manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow MyNetwork
http_access deny All
#定义与其它代理服务器的关系,语法: <cache_peer> <主机名称> <类别>
<http_port> <icp_port> <其它参数>
cache_peer 192.168.60.6 parent 4480 7 no-query default
#设置与其它代理服务器的关系:
# <cache_peer_access> <上层 Proxy > <allow|deny> <acl名称>
#cache_peer_access 192.168.60.6 allow aclxxx
#cache_peer_access 192.168.60.6 deny !aclxxx
coredump_dir /var/spool/squid
2. 激活squid
1). 在开启squid之前,你应该验证其配置文件是否正确。运行如下命令即可:
# squid -k parse
假如你看不到输出,配置文件有效,你能继续后面的步骤。然而,如果配置文件包含错误,squid会告诉你:
2). 初始化cache目录.即建立缓存目录的存储格式 只需在第一次启动squid服务之前执行(在初次运行squid之前,或者无论何时你增加了新的cache_dir,你必须初始化cache目录。)
# squid -z cache
目录初始化可能花费一些时间,依赖于cache目录的大小和数量,以及磁盘驱动器的速度。假如你想观察这个过程,请使用-X选项:
# squid -zX
3). 启动squid服务 # service squid start
假定squid安装在/usr/local/squid目录下,也可以
# /usr/local/squid/sbin/squid –sD
4). 停止squid 最安全的停止squid的方法是使用squid -k shutdown命令:
# squid -k shutdown
5). 重配置运行中的squid进程
在你了解了更多关于squid的知识后,你会发现对squid.conf文件做了许多改动。为了让新设置生效,你可以关闭和重启squid,或者在squid运行时,重配置它。
重配置运行中的squid最好的方法是使用squid -k reconfigure命令:
# squid -k reconfigure
6). 滚动日志文件 除非你在squid.conf里禁止,squid会写大量的日志文件。你必须周期性的滚动日志文件,以阻止它们变得太大。squid将大量的重要信息写入日志,假如写不进去了,squid会发生错误并退出。为了合理控制磁盘空间消耗,在cron里使用如下命令:
%squid -k rotate
例如,如下任务接口在每天的早上4点滚动日志:
0 4 * * * /usr/local/squid/sbin/squid -k rotate
该命令做两件事。首先,它关闭当前打开的日志文件。然后,通过在文件名后加数字扩展名,它重命名cache.log,store.log,和 access.log。例如,cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续,滚动到 logfile_rotate选项指定的值。
squid仅仅保存每个日志文件的最后logfile_rotate版本。更老的版本在重命名过程中被删除。假如你想保存更多的拷贝,你需要增加logfile_rotate限制,或者编写脚本用于将日志文件移动到其他位置。 请见13.7章关于滚动日志的其他信息。
3. 访问控制示例
1) 禁止访问某个网站 在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
acl sina dstdomain .sina.com.cn .sina.com
http_access deny sina
或
acl sina dst 58.63.236.26 58.63.236.27 58.63.236.28 58.63.236.29 58.63.236.30 58.63.236.31 58.63.236.32 58.63.236.33 58.63.236.34 58.63.236.35 58.63.236.36 58.63.236.37 58.63.236.38 58.63.236.39 58.63.236.49 58.63.236.50
http_access deny sina
或
acl sina dst www.sina.com.cn
http_access deny sina
2) 禁止来自某些IP地址的访问 在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
acl zhang src 192.168.63.6/32
http_access deny zhang
3) 禁止在某些时段访问
acl Working_hours MTWHF 08:00-17:00
http_access allow Working_hours
http_access deny !Working_hours
4) 禁止某个代理客户建立过多连接
acl OverConnLimit maxconn 4
http_access deny OverConnLimit
三. 透明代理
让我们现在来想象一个联机状态,就是你有一整组内部网络,而这个内部网络都是透过 NAT 主机联机出去的。那么我们谈过,就是在一个内部网很大的情况下,使用 Proxy 是一个很不错的选择,因为至少他可以减轻带宽负荷!不过,遗憾的是,架设 Proxy 的时候,也要使用者在浏览器上面设置代理!那么有没有办法在『使用者不需要在浏览器上面进行任何配置,就可以实现以 Proxy 帮助使用者联接Internet?当然有啦!那就是 Transparent Proxy 啦!也有人翻译成『透明代理服务器』,其原理是:
当使用者经过 NAT 服务器来联机进入 Internet 时,假如使用的 Internet 协议为 80 (也就是 WWW) ,那么就将这个要求交给 Proxy 来工作,以达到代理服务器的功能。
呵呵!也就是说,当使用者是经过 NAT 主机联机出去时,只要让 NAT 主机发现『咦!你是要去读取 www 的资料对吧!好!那么这个动作由 Proxy 主机帮你搞定!』如此一来,使用者根本就不需要在浏览器上面配置 Proxy 的相关资料,因为这个动作是『由 NAT 主机自己决定的』,所以只要在 NAT 主机上面配置妥当即可,使用者不必配置任何资料呢!那么要怎么进行呢?只要两个步骤即可:、
1. 配置 Proxy 主机:
1) 如果是squid 2.5,需要更改squid配置文件中的下列指令:
[root@test root]# vi /etc/squid/squid.conf !
httpd_accel_host virtual # 告诉web加速器,针对所有的
URL httpd_accel_port 80 # 告诉web加速器,要监听的端口是80!
httpd_accel_with_proxy on # 这个很重要!因为配置 httpd_accel_host 之后, cache 的配置会自动被终止,必须要加上这个配置为 on 之后,才能提供 cache 的功能!
httpd_accel_uses_host_header on
2) 如果是squid 2.6,则只需要更改squid配置文件中的一个指令:
http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服务器的地址 [root@test root]# squid -k reconfigure
2. 配置 NAT 主机的 port map : 再来让我们到 NAT 主机上面看看先,因为需要将 80 这个 port 交给 Proxy 的 3128 来帮忙协助,所以你的防火墙 script 必须要加入这一段才行:
#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128
注意一下,那个 eth0 是『你的 NAT 对内的网卡』,至于 192.168.62.0/24 则是你的内部网域,请依照你的主机实际状态来配置!这样一来,您的 client 端完全不需要进行任何的配置,立刻就可以使用 Proxy 的好处啰
3. 配置转发
#echo 1 > /proc/sys/net/ipv4/ip_forward
或:
#vi /etc/sysctl.conf
net_ipv4_forword=1
#vi /etc/sysconfig/network FORWARD_IPV4=yes #service network restart
4. 配置客户端
将另外一台计算机作为客户机进行测试,需要将网关、首选DNS服务器指向设置透明代理的服务器,清除客户端的浏览器代理设置。
四. 反向代理
返回 代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图所示:
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
- Squid反向代理单个后台WEB服务器
1) 如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
http_port 80 #squid监听的端口
httpd_accel_host 172.16.250.250 #内部WEB服务器的IP地址
httpd_accel_port 80 #WEB服务的端口号
httpd_accel_single_host on #转发没有缓冲的请求到一台单独的机器,squid被设置成仅对单一的web服务器作反向代理
httpd_accel_with_proxy on #如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将此设为on,默认是off
httpd_accel_uses_host_header off #在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。
2) 如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
http_port 80 #squid监听的端口
httpd_accel_host localhost #内部WEB服务器的IP地址
httpd_accel_port 81 #WEB服务器的端口号
httpd_accel_single_host on
httpd_accel_with_proxy on
httpd_accel_uses_host_header off
- Squid反向代理多个后台WEB服务器 我们可以用Squid反向代理多个后台WEB服务器。例如:我们可以配置squid同时反向代理www.abc.com, www.xyz.com, www.lmn.com三个后台WEB服务器,示意图如下
- 的配置如下:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_uses_host_header on
- :编译Squid时需激活Internal DNS选项)
- Internet用户通过这里解析三个网站的域名)如下:
www.abc.com 202.102.240.74
www.xyz.com 202.102.240.74
www.lmn.com 202.102.240.74
- IP地址202.102.240.74。
- DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。
- DNS服务器的资源记录如下:
www.abc.com IN A 192.168.62.2
www.xyz.com IN A 192.168.62.3
www.lmn.com IN A 192.168.62.4
- /etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目:
192.168.62.2 www.abc.com
192.168.62.3 www.xyz.com
192.168.62.4 www.lmn.com
- WEB服务器加速器,而且使也一种对外提供Web发布时使用的有效的防火墙技术,使用它不但能节约紧缺的IP地址资源,加速WEB服务器的访问速度,而且能够保护WEB主机,因此能够适应多种应用场合。
- . 故障处理
1. 如果在启动squid时出现下述信息:
% squid -Nd1
FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'
- squid的配置文件中设置visible_hostname,如:
visible_hostname squid.packet-pushers.net
2. 如果在配置squid代理后,客户访问出现以下提示:
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: http://.../
- squid配置文件中加入以下指令:
always_direct allow all
- . 一个范例
- http_port 3128
icp_port 0
cache_mem 64 MB
cache_swap_low 80
cache_swap_high 85
maximum_object_size 32000 KB
cache_dir ufs /var/spool/squid 500 64 1024
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
acl all src 0.0.0.0/0.0.0.0 acl alldst dst 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl 163 url_regex 163.com
acl sina url_regex sina.com.cn
acl myclient src 192.168.6.0/24
http_access allow 163
http_access allow sina
http_access deny !sina
http_access deny !163
cache_peer 192.168.1.8 parent 8080 7 no-query default
cache_effective_user squid
cache_effective_group squid
cache_mgr root@net03.org
coredump_dir /var/spool/squid
- . 一个限制访问的范例
http_port 3128
icp_port 0
cache_mem 64 MB
cache_swap_low 80
cache_swap_high 85
maximum_object_size 32000 KB
cache_dir ufs /var/spool/squid 500 64 1024
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl myclient src 192.168.6.0/24
acl 163 url_regex 163.com
acl sina url_regex sina.com.cn
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
cache_peer 192.168.1.8 parent 8080 7 no-query default
acl ip_acl src 192.168.6.0/24
acl time_acl time M T W H F A S 9:00-19:00
http_access allow ip_acl time_acl
cache_peer_access 192.168.1.8 allow 163
cache_peer_access 192.168.1.8 deny !163
cache_peer_access 192.168.1.8 allow sina
cache_peer_access 192.168.1.8 deny !sina
cache_effective_user squid
cache_effective_group squid
cache_mgr root@net03.org
coredump_dir /var/spool/squid
#acl pl800_arp arp 00:08:c7:9f:34:41
#http_access allow pl800_arp
1选用 vps ,本人正使用的vps 服务商 digitalocean ,vultr 和阿里云 都很稳定半年多来没出现过问题!
2 系统,用过centos 和ubuntu server 个人觉得 ubuntu 的更稳定!选用ubuntu!
3 ubuntu 16.04下 安装 apache php mysql phpmyadmin
putty 登陆vps
passwd (修改 root 密码)
apt-get update
apt-get upgrade
apt-get install apache2
apt-get install php
apt-get install php-gd
apt-get install mysql-server mysql-client
apt-get install phpmyadmin
sudo apt-get install libapache2-mod-php7.0 php7.0
ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
a2enmod rewrite 使apache 支持rewrite
php -r "readfile('http://files.drush.org/drush.phar');" > drush
php drush core-status
chmod +x drush
sudo mv drush /usr/local/bin
drush init
ufw enable (开启防火墙)
ufw allow ssh
ufw allow http
ufw allow https
ufw allow mysql
4 用sftp 登陆vps 软件实惯用 winscp 及 filezilla ,winscp自带编辑器, filezilla 支持多点传送
修改 /etc/mysql/my.cnf
bind-address = 127.0.0.1 改成 bind-address = 0.0.0.0 这样就能支持远程登陆 mysql
修改 /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如需建apache虚拟主机 复制/etc/apache2/sites-available 下 000-default.conf 文件
更改文件名为:xxx.xx.conf 并修改其内容
ServerName xxx.xx
ServerAlias www.xxx.xx
ServerAdmin webmaster@localhost
DocumentRoot /var/www/xxx.xx
记得创建 /var/www/xxx.xx 文件夹
执行 a2ensite xxx.xx.conf
chown -R www-data:www-data /var/www/xxx.xx
apachectl restart
5 登陆 http://xxxx.xx/phpmyadmin 修改root 权限为 任意主机 %
创建数据库
6 安装 drupal
cd /var/www/
drush dl drupal (下载drupal程式)
mv drupal-x.x html 或xxx.xx 修改目录名称
drush dl xxx 下载模快和主题
drush up 更新 drupal 和主题模块
7在浏览器上配置你的drupal 去吧
8 日常备份
mysql数据库备份 选用官方 MySQL Workbench 软件
http://dev.mysql.com/downloads/workbench/
命令行备份和恢复
mysqldump -u root -p --all-databases > alldb.sql
mysql -u root -p <alldb.sql
网站文件备份
cd /var/www/
执行 zip -r myfilename.zip ./*
打包 下载后 再将服务器上myfilename.zip文件删除
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A1048576").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
注 如果低版本excle 将A1048576 改为A65536
Sub 工作薄间工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
errhadler:
MsgBox Err.Description
End Sub
注如低版本excel Microsoft Excel文件(*.xlsx),*.xlsx 中 xlsx 改为 xls
<?php
$con = mysql_connect("localhost","username","password");
mysql_query("set character set 'utf8'");//读库
mysql_query("set names 'utf8'");//写库
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("databasename", $con);
?>
输入关键词
<?php
header("Content-type: text/html; charset=utf-8");
include'conn.php';
$keyword=$_GET['keyword'];
if(!empty($keyword)){
$result =mysql_query( "select * from tablename where xxx like '%$keyword%' ");
}
else {
$result =mysql_query( "select * from tablename ");
}
$count = mysql_num_rows($result);
echo $count;
$Page_size=100;
$page_count = ceil($count/$Page_size);
$init=1;
$page_len=9;
$max_p=$page_count;
$pages=$page_count;
//判断当前页码
if(empty($_GET['page'])||$_GET['page']<0){
$page=1;
}else {
$page=$_GET['page'];
}
$offset=$Page_size*($page-1);
if(!empty($keyword)){
$sql="select * from tablename where xxx like '%$keyword%' limit $offset,$Page_size";
}
else {
$sql="select * from tablename limit $offset,$Page_size";
}
$result=mysql_query($sql,$con);
echo "";
echo "";
echo "axxx " ;
echo "bxxx " ;
echo "cxxx " ;
echo "";
while($row = mysql_fetch_array($result))
{
echo "";
echo " " .$row['a']."" ;
echo " " .$row['b']."";
echo " " .$row['c']."";
echo "";
}
echo "";
$page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数
$pageoffset = ($page_len-1)/2;//页码个数左右偏移量
$key.='';
$key.="$page/$pages "; //第几页,共几页
if($page!=1){
$key.="第一页 "; //第一页
$key.="上一页"; //上一页
}else {
$key.="第一页 ";//第一页
$key.="上一页"; //上一页
}
if($pages>$page_len){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max_p = $page_len;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
}
for($i=$init;$i<=$max_p;$i++){
if($i==$page){
$key.=' '.$i.'';
} else {
$key.=" ".$i."";
}
}
if($page!=$pages){
$key.=" 下一页 ";//下一页
$key.="最后一页"; //最后一页
}else {
$key.="下一页";//下一页
$key.="最后一页"; //最后一页
}
$key.='';
echo "";
echo $key;
mysql_close($con);
?>
bfe 手工应急模式设置
clear 复位功能
clock 管理系统时钟
configure 进入设置模式
connect 打开一个终端
copy 从tftp服务器拷贝设置文件或
把设置文件拷贝到tftp服务器上
debug 调试功能
disable 退出优先命令状态
disconnect 断开一个网络连接
enable 进入优先命令状态 erase
擦除快闪内存 exit 退出
exce模式
help 交互帮助系统的描述
lat 打开一个本地传输连接
lock 锁定终端
login 以一个用户名登录
logout 退出终端
mbranch 向树形下端分支跟踪多路由广播
mrbranch 向树形上端分支跟踪反向多路由广播
name-connection 给一个存在的网络连接命名
no 关闭调试功能
pad 打开X.29 PAD连接
ping 发送回显信息
ppp 开始点到点的连接协议
reload 停机并执行冷启动
resume 恢复一个活动的网络连接
rlogin 打开远程注册连接
rsh 执行一个远端命令
send 发送信息到另外的终端行
setup 运行setup命令
show 显示正在运行系统信息
slip 开始SLIP协议
start-chat 在命令行上执行对话描述
systat 显示终端行的信息
telnet 远程登录
terminal 终端行参数
test 测试子系统内存和端口
tn3270 打开一个tin3270连接
trace 跟踪路由到目的地
undebug 退出调试功能
verify 验证检查闪烁文件的总数
where 显示活动的连接
which-route 执行OSI路由表查找并显示结果
write 把正在运行的设置写入内存、网络、或终端 x3 在PAD上设置X.3参数
xremote 进入xremote模式 2
#show ? access-expression 显示访问控制表达式
access-lists 显示访问控制表
apollo Apollo 网络信息
appletalk Apple Talk 信息
arap 显示Appletalk 远端通道统计
arp 地址解析协议表
async 访问路由接口的终端行上的信息
bridge 前向网络数据库
buffers 缓冲池统计
clns CLNS 网络信息
clock 显示系统时钟
cmns 连接模式网络服务信息
compress 显示压缩状态
configuration 非易失性内存的内容
controllers 端口控制状态
debugging 调试选项状态
decnet DEC网络信息
dialer 拨号参数和统计
dnsix 显示Dnsix/DMPP信息
entry 排队终端入口
extended 扩展端口信息
flash 系统闪烁信息
flh-log 闪烁装载帮助日志缓冲区
frame-relay 帧中继信息
history 显示对话层历史命令 hosts IP域名,查找方式,名字服务,主机表 interfaces 端口状态和设置 ip IP信息 ipx Novell IPX信息 isis IS-IS路由信息 keymap 终端键盘映射 lat DEC LAT信息 line 终端行信息 llc2 IBM LLC2 环路信息 lnm IBM 局网管理 local-ack 本地认知虚环路 memory 内存统计 netbios-cache NetBios命名缓冲存贮器内存 node 显示已知LAT节点 ntp 网络时间协议 processes 活动进程统计 protocols 活动网络路由协议 queue 显示队列内容 queueing 显示队列设置 registry 功能注册信息 rhosts 远程主机文件 rif RIF存贮器入口 route-map 路由器信息 sdlle 显示sdlc-llc2转换信息 services 已知LAT服务 sessions 远程连接信息 smds SMDS信息 source-bridge 源网桥参数和统计 spanning-tree 跨越树形拓朴 stacks 进程堆栈应用 standby 热支持协议信息 stun STUN状态和设置 subsystem 显示子系统 tcp TCP连接状态 terminal 显示终端设置 tn3270 TN3270 设置 translate 协议转换信息 ttycap 终端容易表 users 显示终端行的信息 version 系统硬、软件状态 vines VINES信息 whoami 当前终端行信息 x25 X.25信息 xns XNS信息 xermote Xremote统计 3 #config ? Memory 从非易失性内存设置 Network 从TFTP网络主机设置 Overwrite-network 从TFTP网络主机设置覆盖非易失性内存 Terminal 从终端设置 4 Configure commads: Access-list 增加一个访问控制域 Apollo Apollo全局设置命令 appletalk Appletalk 全局设置命令 arap Appletalk远程进出协议 arp 设置一个静态ARP入口 async-bootp 修改系统启动参数 autonomous-system 本地所拥有的特殊自治系统成员 banner 定义注册显示信息 boot 修改系统启动时参数 bridge 透明网桥 buffers 调整系统缓冲池参数 busy-message 定义当连接主机失败时显示信息 chat-s cript 定义一个调制解调器对话文本 clns 全局CLNS设置子命令 clock 设置时间时钟 config-register 定义设置寄存器 decnet 全局DEC网络设置子命令 default-value 缺省字符位值 dialer-list 创建一个拨号清单入口 dnsix-nat 为审计提供DMDM服务 enable 修改优先命令口令 end 从设置模式退出 exit 从设置模式退出 frame-relay 全局帧中继设置命令 help 交互帮助系统的描述 hostname 设置系统网络名 iterface 选择设置的端口 ip 全局地址设置子命令 ipx Novell/IPX全局设置命令 keymap 定义一个新的键盘映射 lat DEC本地传输协议 line 设置终端行 lnm IBM局网管理 locaddr-priority-list 在LU地址上建立优先队列 logging 修改注册(设备)信息 login-string 定义主机指定的注册字符串 map-class 设置静态表类 map-list 设置静态表清单 menu 定义用户接口菜单 mop 设置DEC MOP服务器 netbios NETBIOS通道控制过滤 no 否定一个命令或改为缺省设置 ntp 设置NTP priority-list 建立特权列表 prompt 设置系统提示符 queue-list 建立常规队列列表 rcmd 远程命令设置命令 rcp-enable 打开Rep服务 rif 源路由进程 router-map 建立路由表或进入路由表命令模式 router 打开一个路由进程 rsh-enable 打开一个RSH服务 sap-priority-list 在SAP或MAC地址上建立一个优先队列 service 修改网络基本服务 snmp-server 修改SNMP参数 state-machine 定义一个TCP分配状态的机器 stun STUN全局设置命令 tacacs-server 修改TACACS队列参数 terminal-queue 终端队列命令 tftp-server 为网络装载请求提供TFTP服务 tn3270 tn3270设置命令 translate 解释全局设置命令 username 建立一个用户名及其权限 vines VINES全局设置命令 x25 X.25 的第三级 x29 X.29 命令 xns XNS 全局设置命令 xremote 设置Xremote 5 (config)#ip Global IP configuration subcommands: Accounting-list 选择保存IP记帐信息的主机 Accounting-threshold 设置记帐入口的最大数 accounting-transits 设置通过入口的最大数 alias TCP端口的IP地址取别名 as-path BGP自治系统路径过滤 cache-invalidate-delay 延迟IP路由存贮池的无效 classless 跟随无类前向路由规则 default-network 标志网络作为缺省网关候选 default-gateway 指定缺省网(如果没有路由IP) domain-list 完成无资格主机的域名 domain-lookup 打开IP域名服务系统主机转换 domain-name 定义缺省域名 forward-protocol 控制前向的、物理的、直接的IP广播 host 为IP主机表增加一个入口 host-routing 打开基于主机的路由(代理ARP和再定向) hp-host 打开HP代理探测服务 mobile-host 移动主机数据库 multicast-routing 打开前向IP name-server 指定所用名字服务器的地址 ospf-name-lookup 把OSPF路由作为DNS名显示 pim PIM 全局命令 route 建立静态路由 routing 打开IP路由 security 指定系统安全信息 source-route 根据源路由头的选择处理包 tcp 全局TCP参数
Pagination
- Previous page
- You're on Page 4