㈠ linux_165_NFS和RPC工作原理
NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)
NFS是通过RPC服务,进行一个端口注册,实现告知用户,NFS的工作端口是哪一个
RPC
RPC:远程过程调用
Linux上使用NFS服务,必须启动2个服务:NFS服务 和 RPC 服务
NFS服务通过RPC注册自己的端口功能
RPC服务功能就是记录每个NFS功能对应的一个端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输的目的
RPC好比是一个中介,处于客户端和服务端之间
RPC服务如何知道NFS服务端的端口信息?
NFS服务器启动的时候,会随机采用若干个端口,并且主动在RPC服务中进行注册,如此一来,RPC服务就正确知道所有NFS服务端的端口功能了,RPC服务默认使用Linux的111端口和NFS客户端进行交流,并且通过111端口将正确的NFS服务端的端口信息,告知给NFS客户端。因此,NFS客户端就能够正确找到NFS服务端的端口信息
㈡ linux下查看iptables开放了哪些端口的命令是什么
打开指定端口:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #80为指定端口
将更改进行保存:/etc/rc.d/init.d/iptables save
直接在/etc/sysconfig/iptables中增加一行:-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
关闭端口:iptables -A INPUT -p tcp --dport 111 -j DROP
开发不连续端口(包括单个):iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
㈢ linux常用端口号(1)
1.FTP:文件传输协议
协议名:FTP
软件名:vsftpd
FTP端口:控制端口 21/TCP 数据端口:20/TCP
FTP默认端口号为21/tcp
TFTP 默认端口号为69/UDP
2.SSH (安全登录),SCP(文件传输),端口号重定向,默认的端口号为22/TCP
SSH是少数被许可穿越防火墙的协议之一。通常的做法是不限制出站的SSH连接,而入站的SSH连接通常会限制到一台或者少数几台服务器上。
3.Telnet使用23端口:Telnet是一种远程登录的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。
4.NFS(网络文件系统):让网络上的不同Linux/UNIX系统及其实现文件共享
NFS本身只是一种文件系统,没有提供文件传输的功能,但却能让我们文件共享,原因在于NFS使用RPC服务,用到NFS的地方需要启动RPC服务,无论是NFS客户端还是服务端。
NFS和RPC的关系:NFS是一个文件系统,负责管理分享的目录,RPC负责文件的传递。
NFS启动时至少有RPC.NFSD和RPC.mountd,2个daemon
rpc.nfsd主要管理客户机登录NFS服务器时,判断客户机是否能登录,和客户机ID信息。
rpc.mountd主要管理nfs的文件系统,当客户机顺利登录NFS服务器时,会去读/etc/exports文件中的配置,然后去对比客户机的权限。
协议使用端口:
RPC: 111 TCP/UDP
NFSD: 2049 TCP/UDP
mountd: RPC服务在NFS服务启动时默认会为mountd动态选取一个随机端口(32768--65535)来进行通讯,可以在/etc/nfsmount.conf文件中指定mount的端口。
5.NTP (网络时间协议)
他的目的是国际互联网上传递统一,标准的时间。
NTP同时同步指的是通过网络的NTP协议和时间源进行时间校准,前提条件,事件源输出必须通过网络接口,数据输出格式必须符合NTP协议。
区域网内所有的PC,服务器和其他设备通过网络与时间服务器保持同步,NTP协议自动判断网络延时,并给得到的数据进行时间补偿,从而使区域网内设备时间保持统一标准。
端口: 123/UDP
6.DNS 域名系统
该系统用于命名组织到域层次结构中的计算机和网络服务。
在Internel上域名和IP地址是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,他们之间的转换工作称为域名解析,域名解析需要专门的域名解析服务器来完成。
DNS运行在UDP协议之上,使用端口号53.
在传输层TCP提供端到端可靠的服务,在UDP端提供尽力而为的服务,其控制端口作用于UDP端口53.
UDP53: 解析客户端的域名用UDP(速度快)
TCP53 主从用(安全性较高)
7.PHP-FPM是一个PHPFastCGI
默认端口:9000/TCP
8.SMTP: 是一种提供可靠且有效电子邮件传输协议。SMTP是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信相关的通知
SMTP: 端口号:25 /TCP 发邮件
POP3: 端口号:TCP/25 收邮件
IMAP4 端口号: TCP/143 用来提供发邮件支持附件用的。
9.Samba:
137(UDP) , 138(UDP)
139(TCP) , 445(TCP) 提供文件共享功能
137udp,138udp提供ip地址到主机名解析的功能
901(TCP)
10.Mycat
代替昂贵的Oracle的MySQL集群中间件
默认端口8066连接Mycat
9066管理端口
㈣ Linux端口转发(iptables)
当服务器迁移,因为DNS未同步或某些人使用ip访问,一些流量还是会流向老的服务器。
使用iptables及其伪装特性,将所有流量转发到老的服务器。 点击看iptables的介绍 。
本文假设没有运行的iptables,至少没有针对prerouting链和postrouting链的NAT表的转发规则。
1) 首先开启端口转发
# echo "1" > /proc/sys/net/ipv4/ip_forward
或sysctl net.ipv4.ip_forward=1
2) 增加端口转发
将端口1111上的流量转发到主机2.2.2.2 上的端口1111。
# iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
然后告诉IPtables伪装起来(masquerade)
# iptables -t nat -A POSTROUTING -j MASQUERADE
仅仅重定向一个固定网络甚至是一台主机的流量
# iptables -t nat -A PREROUTING -s 192.168.1.1 -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
仅仅重定向一个网段的流量
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
这就可以进行Linux端口转发流量了。
查看转发规则 sudo iptables -t nat -nL
1) docker bridge模式
2) 安全方面,同主机上端口指定网卡ip上的流量转发
3) 端口转发到另外的服务器,见上边案例
4) snat场景
5) dnat场景,内网访问外网
https://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/