查看网络连接状态 Linux netstat命令应用详解

列出在线ip以及对应ip的连接数
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

列出在线的ip以及对应的连接端口和pid
netstat -ntulpa

列出在线的ip及对应的连接端口
netstat -an

参考:
从整体上看,netstat的输出结果可以分为两个部分:

一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

实用命令实例

1. 列出所有端口 (包括监听和未监听的)
列出所有端口 netstat -a

列出所有 tcp 端口 netstat -at

列出所有 udp 端口 netstat -au

2. 列出所有处于监听状态的 Sockets
只显示监听端口 netstat -l

只列出所有监听 tcp 端口 netstat -lt

只列出所有监听 udp 端口 netstat -lu

只列出所有监听 UNIX 端口 netstat -lx

3. 显示每个协议的统计信息
显示所有端口的统计信息 netstat -s

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

4. 在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

5. 在 netstat 输出中不显示主机,端口和用户名 (host, port or user)
当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

6. 持续输出 netstat 信息
netstat 将每隔一秒输出网络信息。

netstat -c

7. 显示系统不支持的地址族 (Address Families)
netstat –verbose

8. 显示核心路由信息 netstat -r

9. 找出程序运行的端口
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

netstat -ap | grep ssh

找出运行在指定端口的进程

# netstat -an | grep ‘:80’

10. 显示网络接口列表
# netstat -i

显示详细信息,像是 ifconfig 使用 netstat -ie:

# netstat -ie

11. IP和TCP分析
查看连接某服务端口最多的的IP地址

# netstat -nat | grep “127.0.0.1:22” |awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -20

TCP各种状态列表

wss8848@ubuntu:~$ netstat -nat |awk ‘{print $6}’

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。

# netstat -nat |awk ‘{print $6}’|sort|uniq -c

最后的命令如下:
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
分析access.log获得访问前10位的ip地址
awk ‘{print $1}’ access.log |sort|uniq -c|sort -nr|head -10

借助阿里云sh脚本Linux一键安装web环境

系统环境:CentOS6

卸载CentOS自带Apache

rpm -qa|grep httpd,查看与httpd相关软件包。
rpm -e httpd

因为这个一键安装是通过脚本编译按照的。
SO,首先需要解决编译环境问题

获取相关开源程序:
1、【适用CentOS操作系统】利用CentOS Linux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):
sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2、进入home目录建立tmp目录
mkdir -p /home/tmp
cd tmp

3、下载一键安装脚本
wget http://soft.phpwind.me/web/sh.zip

unzip sh.zip
chmod -R 777 sh
cd sh
./install.sh

出现了一个选择提示,进入web服务器版本的选择界面,可以根据需要选择apache或者nginx服务器
这里我们选择nginx,输入n,回车

参考:
linux一键安装web环境全攻略 http://help.aliyun.com/manual?helpId=129

Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创] http://blog.s135.com/nginx_php_v6/

一键安装web环境全攻略

Debian Linux 使用Vsftpd安装配置架设FTP服务器

首先Vsftpd就不用介绍了。

Vsftpd的安装:
aptitude update //更新数据源列表
aptitude install vsftpd //安装vsftpd

Vsftpd的文件结构:
/usr/sbin/vsftpd —- VSFTPD的主程序
  /etc/init.d/vsftpd —- 启动脚本
  /etc/vsftpd.conf —- 主配置文件
  /etc/pam.d/vsftpd —- PAM认证文件
  /etc/ftpusers —-记录不允许访问FTP服务器的用户名单
  /home/ftp —-Vsftpd的根目录
  此外VSFTPD的日志文件为/var/log/vsftpd.log。
Vsftpd的管理控制。
  /etc/init.d/vsftpd start //启动vsftpd
  /etc/init.d/vsftpd stop //停止vsftpd
  /etc/init.d/vsftpd restart //重新启动vsftpd
  /etc/init.d/vsftpd reload //重新导入vsftpd
Vsftpd的配置文件。
  Vsftp的配置文件默认情况下就已经比较安全,一般不需要修改,下面对常用的几个配置选项进行说明:
  Listen=yes 是否以独立进程启动  
  anonymous_enable=YES 是否允许匿名ftp,如否则选择NO
  local_enable=YES 是否允许本地用户登录
  anon _enable=YES 是否允许匿名ftp用户访问
  anon_upload_enable=YES 是否允许匿名上传文件
  anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
  dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
  xferlog_enable=YES 是否记录ftp传输过程
  xferlog_file=/var/log/vsftpd.log 设置日志文件的路径
  connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
  idle_session_timeout=600 设置默认的断开不活跃session的时间
  data_connection_timeout=120 设置数据传输超时时间
  max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
  anon_max_rate 匿名最大传输速度,0为无限制
  local_max_rate 本地用户最大传输速度,0为无限制
  max_clients 最多客户端连接,0为无限制
  max_per_ip 一个ip的最大连接数,0为无限制
  更多的配置内容请访问vsftpd的官方网站查看:
  http://vsftpd.beasts.org/vsftpd_conf.html

配置本地组访问FTP
首先创建用户组clin003和FTP的目录
groupadd clin003-com (组名是随便取的,只是便于管理以后可以随时cat /etc/group |grep clin003-com)
mkdir /tmp/clin003 (我直接给用户分配管理/var/www文件,用来管理apache的web目录)
然后创建用户
useradd -G clin003-com -d /tmp/clin003 -M user1
注:G:用户所在的组 d:指定创建用户的自己目录 M:不建立默认的自家目录,就是在/home下没有自己的目录

我只是为了给自己的web server做文件传输服务,所以做了一个帐户.
useradd -G ftp -d /var/www -M clin003-admin

接着改变文件夹属于的组和用户
chown clin003-admin.clin003-com /var/www 把/var/www改变属主为clin003-admin
chmod 711 /var/www
我这设置的读取权限是711.也就是文件夹所有者完全权限,同组也就是上面的FTP组和所有人都是可执行权限.

Vsftpd添加FTP账号
A. 登录Linux主机后,运行命令:”useradd ftp-clin003 -s /sbin/nologin “。该账户路径默认指向/home/ftp-clin003目录;如果需要将用户指向其他目录,请运行命令:useradd ftp-clin003 -s /sbin/nologin –d /www(其他目录)

B. 设置ftp-clin003用户密码,运行命令:”passwd ftp-clin003” ; 输入两次密码,匹配成功后,就设置好了ftp-clin003用户的密码了。

C.测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。

umask=022
umask=022中”022″是八进制的写法,如果换成二进制是000010010

在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)。

如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有读权限,可以写成:
rw-r-xr–
其中前三位指明了所有者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。我们用ls -l可以看到文件权限详情,列出来的是10位,最前一位如果是d表示是子目录。
说回来,如果把这上面9位字母换成二进制数则是:
110101100
如果换成八进制是多少?

因此文件权限可以用9位二进制数表示。umask在英文中是屏蔽的意思,那么
umask=022
指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示
000010010
换算成字母是
—-w–w-
指取消组的写权限、取消其它用户的写权限。
屏蔽这些权限后,剩下什么权限呢?用字母表示是:
rwxr-xr-x
用二进制数表示是:
111101101
你可以对比一下
000010010
可以知道屏蔽前后的换算关系。

在vsftpd的配置文件中,umask=022表示了上权后的文件被屏蔽的权限,另一句话说,就是上传的文件所具有的权限。

解决提示“ftp:command not found” 安装ftp客户端命令

解决提示ftp:command not found 安装ftp客户端命令

服务器环境:系统 Debian

SSH终端命令行安装方法
打开终端,输入代码:sudo apt-get install ncftp

很快就把NcFTP安装好了。

NcFTP与传统的FTP相比,主要有以下改进或变化:

1、子目录下载,采用递归的方法,下载整个目录及其子目录。
2、支持断点续传。一次传输没有完成,下次可以接着传输未完成的文件。
3、匿名FTP自动登录。目前大部分FTP站点都可以匿名登录,NcFTP可以自动登录(默认方式)。
4、支持通过防火墙传输和代理服务器。
5、支持书签功能,可以将某个位置存在书签中方便以后直接跳转。
6、可以显示下载进度。
7、显示传输速率。
8、文件列表自动满页暂停。当ls文件列表超过一屏,NcFTP会自动暂停,等待任意键继续。
9、默认是以binary方式传输数据。
10、支持文件名自动完成。例如服务器上有文件download.list,您只要输入get down,系统可以自动填充文件名为download.list。
11、自动记忆站点的离开时的目录,下次登录会自动进入那个目录。

参考:http://www-31.ibm.com/support/techdocs/cn/faqhtmlfaq/2311073I23003.htm

用法1(get命令下载文件):
使用ncftp -u user clin003.com 就会登录到主机clin003.com上了,系统会要求你输入user的密码。密码正确的话就会连接上。

在ncftp / >后输入lls,列出本地目录。

在ncftp / >后输入pls,列出FTP服务器上的文件目录。

如果要下载FTP服务器上的文件用什么命令呢?

首先进入文件目录,刚才用lls列出目录后,用cd命令进入文件夹(比如doc目录)
然后可以使用ls查看目录内容,接着可以使用“get 文件名”下载其中的文件。

用法2(利用ncftpget/ncftpput,结合nohup实现后台连续的上传与下载)
nohup ncftpget -R -u user -p password clin003.com /ldir /rdir/ &

更全面的NcFTP命令用法介绍可以参考:http://www.ibm.com/developerworks/cn/aix/library/au-ncftp_flex/index.html

Fedora 12 (Linux)下 RPM 安装应用程序 Mplayer

环境:Fedora 12 (Linux)
程序版本:
mplayer-1.0-0.111.20091029svn.fc12.i686.rpm(下载地址
mplayer-gui-1.0-0.111.20091029svn.fc12.i686.rpm(下载地址
RPM包下载网站:http://rpmfusion.org/

清理编译安装程序
在安装之前先说下卸载编译安装的 Mplayer 程序
进入解压编译的目录(mplayer),然后使用 “make unistall”或 “make clean”,然后可以自行到 home 目录下删除配置文件(~/.mplayer/*)。

解决 RPM 安装出现“无法满足的依赖关系”问题

下面开始折腾 mplayer-1.0-0.111.20091029svn.fc12.i686.rpm 的安装。

使用 “rpm -ivh mplayer-1.0-0.111.20091029svn.fc12.i686.rpm”进行安装出现下面的警告!

[root@clin003 download]# rpm -ivh mplayer-
mplayer-1.0-0.111.20091029svn.fc12.i686.rpm
mplayer-gui-1.0-0.111.20091029svn.fc12.i686.rpm
[root@clin003 download]# rpm -ivh mplayer-1.0-0.111.20091029svn.fc12.i686.rpm
warning: mplayer-1.0-0.111.20091029svn.fc12.i686.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 16ca1a56
error: Failed dependencies:
faad2-libs >= 1:2.6.1 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libBasicUsageEnvironment.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libUsageEnvironment.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
liba52.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libcaca.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libdca.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libdvdnav.so.4 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libdvdread.so.4 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libenca.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libfaad.so.2 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libfribidi.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libgroupsock.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
liblirc_client.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libliveMedia.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libopencore-amrnb.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libopencore-amrwb.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libschroedinger-1.0.so.0 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686
libxvidcore.so.4 is needed by mplayer-1.0-0.111.20091029svn.fc12.i686

很纠结(少这么多“包”)!
这里我也没有很多捷径跳过这些包进行安装(没试过强制安装:加上–force)!
先是到 这里(http://fr2.rpmfind.net/linux/RPM/index.html)搜索包,然后选择需要的(RpmFusion Free for Fedora 12 for i386)进行下载,然后装上,有些包这里边没有,我找到另一种办法就是使用 yum(比如:“yum install libschroedinger-1.0.so.0”) 来进行安装!

下面就说下yum安装这些缺失的包:
可以直接使用yum命令

[root@clin003 src]# yum install libschroedinger-1.0.so.0 liblirc_client.so.0

进行安装,有些包使用yum无法安装,就只好到 rpmfind 进行搜索下载来安装。

PS:由于是后来才知道的这个办法,大多的包我都是从 rpmfind 找回来安装的 – -!

RPM -ivh 安装 RPM程序包

待到这些“必需”的包都装齐后,再来使用 “rpm -ivh mplayer-1.0-0.111.20091029svn.fc12.i686.rpm “安装

[root@clin003 download]# rpm -ivh mplayer-1.0-0.111.20091029svn.fc12.i686.rpm
warning: mplayer-1.0-0.111.20091029svn.fc12.i686.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 16ca1a56
Preparing… ########################################### [100%]
1:mplayer ########################################### [100%]

虽然有个警告(warning),但已经成功安装了,然后安装 gui 界面包。

[root@clin003 download]# rpm -ivh mplayer-gui-1.0-0.111.20091029svn.fc12.i686.rpm
warning: mplayer-gui-1.0-0.111.20091029svn.fc12.i686.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 16ca1a56
Preparing… ########################################### [100%]
1:mplayer-gui ########################################### [100%]

到这里已经可以正常使用 Mplayer 了(应用程序——影音——MPlayer Media Player)即可打开。

为 Mplayer 安装更多皮肤

与编译安装 Mplayer的皮肤存放位置(“/usr/local/share/mplayer/skins”)不同的是RPM安装的 Mplayer 皮肤默认位置在这里(”/usr/share/mplayer/skins”)。

可以到这里(http://www.mplayerhq.hu/design7/dload.html)下载皮肤,然后解压,放到 skins 目录下即可。
下载到的是 tar.bz2 的文件,具体操作如下:

[root@clin003 download]# tar xfv OSX-Brushed-2.3.tar.bz2
OSX-Brushed/

OSX-Brushed/skin-buttons-right
[root@clin003 download]# ls
… libdvdnav-4.1.4-0.1.svn1184.fc12.i686.rpm OSX-Brushed

[root@clin003 download]# mv OSX-Brushed /usr/share/mplayer/skins/
[root@clin003 download]# ls /usr/share/mplayer/skins/
Blue default OSX-Brushed
[root@clin003 download]#

现在打开 Mplayer 在框口中右键选择 Skins brower ,选中 OSX-Brushed ,OK 。

到这里 一个 RPM 安装提示缺少 必要包的 rpm 程序包安装完成啦。

PS:Mplayer 很好很强大!

Fedora 12 (Linux)下编译安装应用程序 Mplayer

环境:Fedora 12 (Linux)
程序版本:MPlayer SVN-r29934-4.4.2 (C) 2000-2009 MPlayer Team

其实 Linux 下编译安装一个应用程序都是大同小伊的,步骤都一样。
在安装前查看 文件夹中的 README 文件会很有帮助。

下边就举例描述下在 Fedora 12 下编译安装 Mplayer 的过程。

1、下载 Mplayer 源文件

我是通过 SVN 下载的:
首先切换到要下载到的目录,然后在终端中使用

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

下载。
日后更新可使用

svn update

。。
当然你也可以到 Mplayer 官方网站下载源码包 然后回来解压然后继续下面的步骤。

2、配置 Mplayer

终端命令行切换到 mplayer 文件夹中,然后使用

./configure –enable-gui

若不需要可视化界面,可去掉 参数 “–enable-gui”

3、编译 Mplayer

配置完毕后,使用

make

进行编译,然后使用

make install

进行安装。

4、测试 Mplayer

使用 命令

mplayer movie.rmvb

打开名字为 movie.rmvb 的电影文件。

到这里,linux下一个有源代码包的应用程序就编译安装完成啦。

PS:关于 Mplayer 使用帮助 可使用 “mplayer -help” 获得。