host

host

常用的分析域名查询工具

补充说明

host命令 是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

语法

host(选项)(参数)

选项

-a:显示详细的DNS信息;
-c<类型>:指定查询类型,默认值为“IN“;
-C:查询指定主机的完整的SOA记录;
-r:在查询域名时,不使用递归的查询方式;
-t<类型>:指定查询的域名信息类型;
-v:显示指令执行的详细信息;
-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4:使用IPv4;
-6:使用IPv6.

参数

主机:指定要查询信息的主机信息。

实例

[root@localhost ~]# host www.jsdig.com 
www.jsdig.com is an alias for host.1.jsdig.com.
host.1.jsdig.com has address 100.42.212.8

[root@localhost ~]# host -a www.jsdig.com
Trying "www.jsdig.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34671
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.jsdig.com.               IN      ANY

;; ANSWER SECTION:
www.jsdig.com.        463     IN      CNAME   host.1.jsdig.com.

Received 54 bytes from 202.96.104.15#53 in 0 ms
2024-08-08    
hostid

hostid

显示当前主机的十六进制数字标识。

概要

hostid [OPTION]...

主要用途

  • 显示当前主机的十六进制标识符。
  • 用来限制软件的使用权限,不可改变。

选项

--help       显示帮助信息并退出。
--version    显示版本信息并退出。

例子

[root@localhost ~]# hostid
007f0100

注意

  1. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 hostidinfo coreutils 'hostid invocation'
2024-08-08    
hostname

hostname

显示和设置系统的主机名

补充说明

hostname命令 用于显示和设置系统的主机名称。

  • 环境变量 HOSTNAME 也保存了当前的主机名。
  • 在使用 hostname 命令设置主机名后,系统并不会永久保存新的主机名,重启之后还是原来的主机名。如果需要永久修改主机名,需要修改 /etc/hosts/etc/sysconfig/network 的相关内容并进行重启;也可以使用 hostnamectl 命令进行永久修改。

语法

hostname [-b] {hostname|-F file}           设置主机名称(或从文件获取)
hostname [-a|-A|-d|-f|-i|-I|-s|-y]         显示格式化的名称
hostname                                   显示主机名称

{yp,nis,}domainname {nisdomain|-F file}    设置 NIS 主机名称(或从文件获取)
{yp,nis,}domainname                        显示 NIS 主机名称

dnsdomainname                              显示 DNS 主机名称

hostname -V|--version|-h|--help            打印信息并退出

选项

-a, --alias               显示主机别名
-A, --all-fqdns           显示所有FQDN名称
-b, --boot                如果没有可用的主机名,则设置默认主机名
-d, --domain              显示DNS域名
-f, --fqdn, --long        显示FQDN名称
-F, --file                从给定文件中读取主机名或NIS域名
-i, --ip-address          显示主机的ip地址
-I, --all-ip-addresses    显示主机所有的ip地址
-s, --short               显示短主机名称,在第一个点处截断
-y, --yp, --nis           显示NIS域名

实例

显示主机名

2024-08-08    
hostnamectl

hostnamectl

查询或更改系统主机名

补充说明

hostnamectl可用于查询和更改系统主机名和相关设置。

语法

hostnamectl [选项...] 指令 ...

指令

status                 显示当前主机名设置
set-hostname NAME      设置系统主机名
set-icon-name NAME     设置主机的图标名称
set-chassis NAME       设置主机的机箱类型 
set-deployment NAME    设置主机的部署环境 
set-location NAME      设置主机位置

选项

-h --help               显示此帮助
    --version           显示包的版本
    --no-ask-password   不提示输入密码
-H --host=[USER@]HOST   在远程主机上操作
-M --machine=CONTAINER  在本地容器上执行操作。指定要连接到的容器名称。
--transient, --static, --pretty  
                        如果调用了status(或者没有给出显式命令)并且指定了其中一个开关,hostnamectl将只打印出这个选定的主机名。

实例

显示主机名设置

$ hostnamectl status

改变主机名(永久修改,不用重启哦~)

$ sudo hostnamectl set-hostname newname
2024-08-08    
hping3

hping3

测试网络及主机的安全

补充说明

hping 是用于生成和解析TCPIP协议数据包的开源工具。创作者是Salvatore Sanfilippo。目前最新版是hping3,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。hping优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。

安装

yum install libpcap-devel tc-devel
ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
wget http://www.hping.org/hping3-20051105.tar.gz
tar zxvf hping3-20051105.tar.gz
cd hping3-20051105
./configure
make
make install

选项

-H --help 显示帮助。
-v -VERSION 版本信息。
-c --count count 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑。
-i --interval 包发送间隔时间(单位是毫秒)缺省时间是1秒,此功能在增加传输率上很重要,在idle/spoofing扫描时此功能也会被用到,你可以参考hping-howto获得更多信息-fast 每秒发10个数据包。
-n -nmeric 数字输出,象征性输出主机地址。
-q -quiet 退出。
-I --interface interface name 无非就是eth0之类的参数。
-v --verbose 显示很多信息,TCP回应一般如:len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0
-D --debug 进入debug模式当你遇到麻烦时,比如用HPING遇到一些不合你习惯的时候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)
-z --bind 快捷键的使用。
-Z --unbind 消除快捷键。
-O --rawip RAWIP模式,在此模式下HPING会发送带数据的IP头。
-1 --icmp ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。
-9 --listen signatuer hping的listen模式,用此模式,HPING会接收指定的数据。
-a --spoof hostname 伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
-t --ttl time to live 可以指定发出包的TTL值。
-H --ipproto 在RAW IP模式里选择IP协议。
-w --WINID UNIX ,WINDIWS的id回应不同的,这选项可以让你的ID回应和WINDOWS一样。
-r --rel 更改ID的,可以让ID曾递减输出,详见HPING-HOWTO。
-F --FRAG 更改包的FRAG,这可以测试对方对于包碎片的处理能力,缺省的“virtual mtu”是16字节。
-x --morefrag 此功能可以发送碎片使主机忙于恢复碎片而造成主机的拒绝服务。
-y -dontfrag 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY。
-G --fragoff fragment offset value set the fragment offset
-m --mtu mtu value 用此项后ID数值变得很大,50000没指定此项时3000-20000左右。
-G --rroute 记录路由,可以看到详悉的数据等等,最多可以经过9个路由,即使主机屏蔽了ICMP报文。
-C --ICMPTYPE type 指定ICMP类型,缺省是ICMP echo REQUEST。
-K --ICMPCODE CODE 指定ICMP代号,缺省0。
--icmp-ipver 把IP版本也插入IP头。
--icmp-iphlen 设置IP头的长度,缺省为5(32字节)。
--icmp-iplen 设置IP包长度。
--icmp-ipid 设置ICMP报文IP头的ID,缺省是RANDOM。
--icmp-ipproto 设置协议的,缺省是TCP。
-icmp-cksum 设置校验和。
-icmp-ts alias for --icmptype 13 (to send ICMP timestamp requests)
--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests)
-s --baseport source port hping 用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则你可以自己定义。
-p --deskport [+][+]desk port 设置目标端口,缺省为0,一个加号设置为:每发送一个请求包到达后,端口加1,两个加号为:每发一个包,端口数加1。
--keep 上面说过了。
-w --win 发的大小和windows一样大,64BYTE。
-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
-m --tcpseq 设置TCP序列数。
-l --tcpck 设置TCP ack。
-Q --seqnum 搜集序列号的,这对于你分析TCP序列号有很大作用。

Hping3功能

Hping3主要有以下典型功能应用:

2024-08-08    
htdigest

htdigest

Apache服务器内置工具

补充说明

htdigest命令 是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用于摘要认证的密码文件。

语法

htdigest(选项)(参数)

选项

-c:创建密码文件。

参数

  • 密码文件:指定要创建或更新的密码文件;
  • 域:指定用户名所属的域;
  • 用户名:要创建或者更新的用户名。
2024-08-08    
htop

htop

[非内部命令]一个互动的进程查看器,可以动态观察系统进程状况

补充说明

htop命令 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。

与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点:

  • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
  • 在启动上,比top 更快。
  • 杀进程时不需要输入进程号。
  • htop 支持鼠标操作。
  • 两者相比起来,top比较繁琐。

top缺点:

  • 只支持键盘操作。
  • 显示也单调。

htop 官网:http://htop.sourceforge.net/

语法

htop

参数

-C --no-color               使用单色配色方案
-d --delay=DELAY            设置更新之间的延迟,在十秒
-s --sort-key=COLUMN        纵列排序(try --sort-key=help for a list)
-u --user=USERNAME          只显示一个指定用户的进程
-p --pid=PID,[,PID,PID...]  只显示给用户
-h --help                   打印此命令帮助
-v --version                打印版本信息

选项

h,?     F1:查看htop使用说明
S       F2:设置
/       F3:搜索进程
\       F4:过滤器,按关键字搜索
t       F5:显示树形结构
<,>     F6:选择排序方式
[       F7:减少nice值,这样就可以提高对应进程的优先级
]       F8:增加nice值,这样可以降低对应进程的优先级
k       F9:杀掉选中的进程
q       F10:退出htop


/ : 搜索字符
h : 显示帮助
l : 显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
u : 显示所有用户,并可以选择某一特定用户的进程
U : 取消标记所有的进程
s : 将调用strace追踪进程的系统调用
t : 显示树形结构

H:显示/隐藏用户线程
I:倒转排序顺序
K:显示/隐藏内核线程    
M:按内存占用排序
P:按CPU排序    
T:按运行时间排序

上下键或PgUP, PgDn : 移动选中进程  
左右键或Home, End : 移动列表  
Space(空格) : 标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程  

Htop设定

鼠标点击Setup或者按下F2 之后进入htop 设定的页面

2024-08-08    
htpasswd

htpasswd

apache服务器创建密码认证文件

补充说明

htpasswd命令 是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

语法

htpasswd(选项)(参数)

选项

-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。

参数

  • 用户:要创建或者更新密码的用户名;
  • 密码:用户的新密码。

实例

利用htpasswd命令添加用户

htpasswd -bc .passwd www.jsdig.com php

在bin目录下生成一个.passwd文件,用户名www.jsdig.com,密码:php,默认采用MD5加密方式。

在原有密码文件中增加下一个用户

htpasswd -b .passwd Jack 123456

去掉-c选项,即可在第一个用户之后添加第二个用户,依此类推。

不更新密码文件,只显示加密后的用户名和密码

htpasswd -nb Jack 123456

不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。

利用htpasswd命令删除用户名和密码

htpasswd -D .passwd Jack

利用htpasswd命令修改密码

htpasswd -D .passwd Jack
htpasswd -b .passwd Jack 123456

即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。

2024-08-08    
hwclock

hwclock

显示与设定硬件时钟

补充说明

hwclock命令 是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

语法

hwclock(选项)

选项

--adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;
--debug:显示hwclock执行时详细的信息;
--directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;
--hctosys:将系统时钟调整为与目前的硬件时钟一致;
--set --date=<日期与时间>:设定硬件时钟;
--show:显示硬件时钟的时间与日期;
--systohc:将硬件时钟调整为与目前的系统时钟一致;
--test:仅测试程序,而不会实际更改硬件时钟;
--utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;
--version:显示版本信息。

实例

设置硬件时间要依赖于操作系统时间,具体方法如下:

hwclock –systohc
hwclock --systohc –-utc

不加任何参数使用hwclock,可以查看当前的硬件日期和时间。

hwclock

查看clock文件,确认是否设置了UTC:

cat /etc/default/rcS 
UTC=yes

在其他一些版本的Linux(如RebHat)中可以这样查看:

cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
UTC=false
ARC=false
2024-08-08    
iconv

iconv

转换文件的编码方式

补充说明

iconv命令 是用来转换文件的编码方式的,比如它可以将UTF8编码的转换成GB18030的编码,反过来也行。JDK中也提供了类似的工具native2ascii。Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数,可以用来在C/C++程序中很方便的转换字符编码,这在抓取网页的程序中很有用处,而iconv命令在调试此类程序时用得着。

语法

iconv -f encoding [-t encoding] [inputfile]... 

选项

-f encoding :把字符从encoding编码开始转换。 
-t encoding :把字符转换到encoding编码。 
-l :列出已知的编码字符集合 
-o file :指定输出文件 
-c :忽略输出的非法字符 
-s :禁止警告信息,但不是错误信息 
--verbose :显示进度信息 
-f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 

实例

列出当前支持的字符编码: 

iconv -l 

将文件file1转码,转后文件输出到fil2中: 

iconv file1 -f EUC-JP-MS -t UTF-8 -o file2 

这里,没-o那么会输出到标准输出。

2024-08-08