Linux网络和权限相关的坑
最近在服务器部署一个发送数据的程序,结果不是很顺利。这里简单记一些遇到的坑。
坑
测试两台机器之间的网络带宽,建议使用iperf
命令。
监听方:
iperf -s -p 8000
发送方:
iperf -c {target_ip} -p 8000
如果iperf
出现connect failed: No route to host
,很可能是防火墙把端口禁用了,(CentOS)可以参考centos 7 - open firewall port开启端口。
要监测每个进程的收、发数据的速度,可以使用nethogs
命令。
想在Linux中安装某个命令行工具(比如上面提到的iperf
),却发现没有root权限(比如是在一个受限的Docker容器中),应该怎么办(apt-get
和yum
都需要root权限)?
一个思路是下载所需工具的源代码,再进行编译安装,比如:
git clone https://github.com/esnet/iperf
cd iPerf
./configure
make
make install
另一个思路是直接复制编译好的可执行文件过去。
使用docker的-v
选项挂载一个文件夹到容器中,却发现容器中对应的文件夹内容是空的,而docker run命令也并没有报错。是什么问题,该如何解决?
问题出在权限上,解决方法是把挂载文件夹的模式设为z
或Z
(参考Permission denied on accessing host directory in docker),比如:
docker run -v /var/db:/var/db:Z rhel7 /bin/sh
Comments