7.2联网知识入门
查看网络接口、等信息
$ ifconfig
打印网络接口列表
$ ifconfig | cut -c-10 | tr -d ' ' | tr -s '\n'
显示接口详细信息
ifconfig iface_name
HWaddr 是硬件地址(MAC地址)
inet addr 是IP地址
Bcast是广播地址
Mask 是子网掩码
提起ip地址
$ ifconfig eth0 | egrep -o "inet addr:[^ ]*" | grep -0 "[0-9.]*"
设置网络IP地址
$ ifconfig eth0 192.168.75.2
设置ip地址子网掩码
$ ifconfig eth0 192.168.75.2 netmask 255.255.252.0
硬件地址欺骗
$ ifconfig eth0 hw ether 00:1c:bf:87:25:d5
名字服务器与DNS
读取当前系统名字服务器
$ cat /etc/resolv.conf
手动添加
# echo nameserber IP_ARRRESS >> /etc/resolv.config
域名对应ip
$ ping google.com
DNS查找
$ host goole.com
DNS资源记录
$ nslookup goole.com
为ip地址添加符号名
# echo IP_ARRRESS symbolic_name >> /etc/hosts
设置默认网关,显示路由表信息
显示路由表
$ route (-n指定数字形式显示地址)
设置默认网关
# route add default gw IP_ADDRESS INTERFACE_NAME
eg. route add default gw 192.168.0.1 wlan0
显示分组途径的所有网关地址
$ traceroute google.com
7.3使用ping
$ ping ADDRESS
限制echo发送数量
$ ping ADDRESS -C 2
7.4 列出网络上所有的活动主机
#!/bin/bash
for ip in 192.169.0.{1..255}
do
ping $ip -c 2 & > /dev/null;
if [$? -eq 0];
then echo $ip is alive
fi
done
或者
$ fping -a 192.168.0.1 192.168.0.255 -g (-a指定打印出所有活动主机的IP地址,-u指定打印出无法到达的主机,-g指定起止ip地址记法中生成的ip地址范围
or
$ fping -a 192.160.1/24 -g 2 > /dev/null
使用fping进行DNS查找
$ cat ip.list
$ fping -a -d 2 > /dev/null <ip.list
7.5传输文件
1.FTP服务器
连接FTP传输文件
$ lftp username@ftphost
命令:
cd directory 改变目录
lcd改变本地主机的目录
mkdir 创建目录
get filename 下载文件
put filename 上传文件
quit 退出会话
2.SFTP
运行sftp
$ sftp username@dominname
指定端口号
$ sftp -oProt=422 user@slynux.org
3.RSYNC
4.SCP
比传统复制工具rcp更安全的文件复制技术。使用SSH加密通道进行传输
$ scp filename user@remotehost:/home/path
scp递归复制
$ scp -r /home/slynux user@remotehost:/home/backups
-p 选项可以在复制文件的同时同时包留文件的权限和模式
7.6用脚本设置以太网与无线LAN
有线网络通过误里线缆就可以,但是无线lan需要认证
需要用ifconfig分配IP地址和子网掩码连接有线网络,对于无线网络需要iwconfig和iwlist配置参数
无线网络需要essid,密钥,网络频率等参数,essid是无线网络的名称,WEP需要wep密钥进行验证,iwconfig为无线网卡配置适合的无线网络、wep密钥以及频率
iwlist可以扫描并列出可用的无线网络
$ iwlist scan
7.7SSH免密登录
密钥实现自动登录
自动化认证需要两步
(1)创建ssh密钥,需要登录到远程主机
(2)将生成的公钥传输到远程主机,并加入文件~/.ssh/authorized_key
创建ssh密钥,输入ssh-keygen,规定加密算法为RSA
$ ssh-keygen -t rsa
添加密钥
$ ssh user@remote_host "cat >> ~/.ssh/authorized_key" < ~/.ssh/id_rsa.
可以使用命令测试
$ ssh user@remote_host uname
7.8用ssh在远程主机上运行命令
连接ssh服务器远程主机
$ ssh username@remote_host
username是远程主机上的用户
remote_host是域名或IP地址
$ ssh mec@192.168.0.1
连接运行在422端口上的ssh服务器
$ ssh user@locahost -p 422
在远程主机运行命令
$ ssh user@host 'commands'
多条命令使用分号进行分隔
$ ssh user@host 'command1;command2;command3'
命令传输获取
$ ssh user@remote_host "commands" > stdout.txt 2>errots.txt
或者
$ echo "commands" | ssh user@remote_host > stdout.txt 2>errots.txt文件进行备份)
ssh数据压缩传输
$ ssh -C user@hostname COMMANDS
数据重定向到远程shell命令
$ echo "text" | ssh user@remote_host 'cat >> list'
7.9在本地挂载远程驱动服务器
文件系统挂载到本地挂载点
$ sshfs user@remotehost:/home/path /mnt/mountpoint
卸载
umount /mnt/mountpoint
7.10网络发送多播式窗口消息
zenity实现GUI弹出窗口
创建一个信息框
$ zenity --info --text "This is a message"
远程主机执行
$ ssh user@remotehost 'export DISPLAY-:0; zenity --info --text "This is a message"'
7.11网络流量与端口分析
列出系统的开放端口以及运行在端口上的服务
$ lsof -i
列出开放端口与服务
$ netstat -tnp