摘要:通过对Linux中的网络、网络控制和网络通信等来了解系统对于网络方面的细节,加强对Linux下网络的认识,加深对网络编程的理解。
网络基本命令
ifconfig
查看当前网络的基本信息
lo:loop网络回路
ens< number >:网卡名
临时修改方法:
ifconfig <设备> < IP >
ifconfig <设备> netmask <掩码>
ifconfig <设备> broadcast <广播地址>
虚拟网卡:
ens33:<虚拟卡编号>
例如:ens33:0,ens33:1
刷新配置:
ifconfig <设备> < ip> up/down
例如:ifconfig ens33 192.168.122.11 up/down
ping
连通性检测
traceroute
网络路径追踪
netstat
网络状态
service NetworkManager start|stop|…
启动/关闭服务
网络服务于守护进程
网络通信
即为进程间通信,不同的机器、不同的进程交换信息
端口
整数(16bit):0~65535
分类:
公开(0~1023):紧密绑定
注册(1024~49151):松散绑定,系统自动绑定
私有(49152~65535):系统不分配,用户自定义
网络服务程序(Daemon)
监听:端口
工作原理:
S:listen port ,有请求时发生–>fork() 子进程响应请求,父进程继续监听
C:发送请求等待应答
工作模式:
独立:一个服务对应一个端口,高负载用独立
网络:服务监听不同端口,根据端口不同,调用不同进程
DHCP服务
目标: 自动分配IP地址,减少出错,减少浪费(局域网)
工作原理:
问:
DHCP服务器:如何接受?向谁应答?
Client客户端:需要分配地址,客户端没有IP地址则需要发送什么?发给谁?
答:
Client发送请求:
源地址:0.0.0.0
目标地址:255.255.255.255(向一切地址发广播)只要DHCP在同一个网段内,则必定会收到应答。
MAC:地址+IP包
DHCP应答:
DHCP Offer包:IP地址相关信息。
源地址:DHCP服务器IP
目标地址:255.255.255.255
MAC: 源地址:DHCP的MAC 目标地址:client的MAC
问:假如网络中多个DHCP服务器,就会有多个应答,client如何处理?
答:按照先来先接收的原则。
Client:确认IP租用信息,DHCPQuest包:说明已经接收到的IP地址(包括client的IP地址+DHCP服务器IP地址)
DHCP服务器确认信息:
DHCP服务刷新:
IP地址的租期(4096),当到达租期的一半时,发送刷新的请求。
服务器应答:刷新出租时间
服务器没有应答:等待,到87.5%时间时再次请求
DHCP配置过程
1.安装软件
包括DHCP服务器、DHCP客户端
在管理员模式下,输入yum install dhcp*
即可查看安装情况。
可以发现需要安装的软件,直接进行安装。
2.虚拟机设置
关闭计算机–>编辑–> 虚拟网络设置
选择host-only模式(虚拟机和主机构成直连网络,虚拟机和主机可通信,但是虚拟机不能于Internet通信),即对VMnet1进行操作。
需要端基更改设置获得管理员权限,再修改DHCP设置。设置成下图
再将虚拟机的网络设置改为仅主机模式,接着开启虚拟机。
3.DHCP服务配置
可以发现网络没有被分配IP地址,所以需要给网卡设置IP地址,
配置IP地址:
ifconfig ens33 192.168.66.1 up
这里的网段是当初上面有个子网IP的网段。
修改配置文件/etc/dhcp/dhcpd.conf
首先,先进行备份
cp dhcpd.conf dhcpd.conf.bak
接着打开 dhcpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#定义domain
option domain-name "mytest.org";
option domain-name-servers dns.mytest.org;
#分配最大及其默认续租时间
default-lease-time 600;
max-lease-time 7200;
#分配地址池
subnet 192.168.66.0 netmask 255.255.255.128{
range 192.168.66.10 192.168.66.125;
option routers 192.168.66.1;
}
#分配固定的IP
host hname{
hardware ethernet 00:50:56:C0:00:01;
FIXED-ADDRESS 192.168.66.100;
}
启动服务
service dhcpd start/status/stop/restart
查看日志
/var/log/messages 或者 journalctl -xe
测试
DHCP客户端选择自动获取IP与DNS。
DNS服务配置——IP与域名转换
工作原理:将域名和IP地址进行转换翻译。
域名管理原则
分级原则:根域(.)、顶级域(com,uk,cn…)、二级域、三级域…
服务器类型
主域名服务器(权威服务器)
辅助域名服务器(备份、从主服务器复制信息、只读)
缓存域名服务器(服务器软件,但是没有数据库,提供高速缓存、非权威)
转发域名服务器(非本地域名的本地查询)
工作流程
www.mit.edu –>查看本机缓存( 浏览器/hosts文件) –> DNS –> 转发服务器/根服务器 (递归或者迭代查询)
配置基本的DNS服务器
安装软件
yum install bind
配置
服务端:主配置文件、正向配置文件、反向配置文件
客户端:指定域名选择方式
主配置文件
记录dns服务器的基本参数信息
port:53
记录正向、反向配置文件的位置、名称
记录当前域的信息
记录根域
修改etc/named.conf
以及添加以下自定义内容:
参数说明:
hint:根服务器
master:主服务器
slaver:从服务器
并且到 /var/named下创建 infosecurity.org.zone
配置正向配置文件
1 | $TTL 1D |
最后一个 * 是代表所以都指向一个服务器。
这里是dns:192.168. * * *. * * *可以从ifconfig中查看本机ip
修改/etc/hosts文件 加入域名服务器信息
修改/etc/resolv.conf文件
启动服务
service named start
可以发现可以ping通了!
tips:
如果发现ping不通的情况下将Linux防火墙的服务器使用命令service firewalld stop
关闭即可。
反向配置文件
修改/etc/named.conf
并且到 /var/named下创建 17.168.192.zone`配置反向配置文件
1 | $TTL 1D |
web服务
工作原理
http/https:协议
www:主机
infosecurity.org:域名
port:80(默认)
安装
yum install httpd*
配置web服务器
修改配置文件/etc/httpd/conf/httpd.conf:
listen:80 #修改监听端口
document root: #制定主页文件目录
dorectorityindex: #设定首页文件名称、类型
启动服务
service httpd start
FTP文件服务器
工作原理
对不同的系统,不同的网络,不同的文件格式进行统一操作。
端口
20和21
主动和被动方式:
主动:
Client:申请X端口,请求访问server的21端口,server应答,并利用21端口传达控制命令。
server:利用20端口向客户端的X+1端口发出传送请求,进行数据传送。
被动:
server连接成功后,给client发送一个端口用于数据传输。
安装
yum install vsftpd
配置
基本配置文件:/etc/vsftpd/vsftpd.conf
资源文件:/var/ftp
用户类型:匿名、本地、虚拟
匿名
anonymous:可以无口令(或口令为anonymous)
进行备份和过滤:
将/etc/vsftpd/vsftpd.conf修改为以下:
1
2
3
4
5
6
7listen_port=21
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022启动
service vsftpd start
测试登入
安装ftp客户端:yum install ftp
终端输入
ftp
,填写IP后输入账号密码(均为ftp)即可连接ftp ip :登入
cd/binasc
put/get:上传下载
quit:退出
默认路径
var/ftp/
其他问题
默认路径有没有权限,一般情况下用户上传文件不修改var/ftp权限,应将var/ftp/pub/权限修改为777
如果还是不能上传 需要关闭SELinux: #
setenforce 0
,1为打开策略。
本地用户配置
创建一个新用户,这里定为叫myftp
修改/etc/passwd下的配置文件为
/bin/nologin
:例如:
myftp:x:1002:1002::/home/myftp:/bin/nologin
修改/etc/vsftpd/vsftpd.conf为:
1
2
3
4
5
6
7
8
9
10listen_port=21
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_enable=YES
local_umask=022
pam_service_name=vsftpd执行命令
#ldd /usr/sbin/vsftpd
#cp /lib64/libpam.so.0 /etc/pam.d
根据需要修改/etc/shells文件,加入/bin/nologin
测试登入
修改当前用户的家目录
修改etc/passwd:
myftp:x:1002:1002::/var/ftp:/bin/nologin
虚拟用户
修改用户信息
/etc/vsftpd下创建username
转换信息格式
修改配置文件
/etc/vsftpd.conf
1
2
3
4
5
6
7
8
9
10
11
12listen_port=21
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_enable=YES
local_umask=022
guest_enable=YES
guest_username=myftp
pam_service_name=vsftpd修改加密数据文件
/etc/pam.d/vsftpd
1
2auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
重启服务
service vsftpd restart
可以发现正常登入了
tips:
在Windows中访问ftp的话需要再/etc/vsftpd/vsftpd.conf下添加以下内容
1 | pasv_enable=YES |
并在有需要的情况下修改以下选项:
设置IE浏览器>>Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉>>确定即可