目录 start
目录 end
|2018-06-20| 码云 | CSDN | OSChina
bupt.deu.cn
nslookup
强大的调试DNS工具
上连DNS的IP#端口
通常是53dig
比nslookup更强大 Domain Information Groperdig +tcp @8.8.8.8 www.baidu.com
采用TCP进行DNS通信(默认UDP)
drill
sudo vim /etc/resolv.conf
添加Google的DNS nameserver 8.8.8.8
nameserver 8.8.8.4
IPv6
netstat lsof fuser ps 都有一定效果 linux_performance
netstat工具 或者 更好用的 iproute2
lsof -i:端口号
用于查看某一端口的占用情况,缺省端口号显示全部
cat /etc/services
查看系统以及使用的端口netstat -tunlp | grep 端口号
用于查看指定的端口号的进程情况
-t
(tcp) 仅显示tcp相关选项-u
(udp)仅显示udp相关选项-n
拒绝显示别名,能显示数字的全部转化为数字-l
仅列出在Listen(监听)的服务状态-p
显示建立相关链接的程序名查询端口占用的pid 三种:
netstat -aonp |grep "^[a-z]\+[ ]\+0[ ]\+0[ ]\+[0-9\.]\+:80[ ]\+"|awk -F" " {'print $0'}
netstat -aonp |grep ":80[ ]\+"|awk -F" " {'print $0'}
sudo netstat -aonp |grep ":6379[ ]\+"|awk -F" " {'print $0'}
sudo kill -9 pid
杀掉指定pidps aux
查看当前执行中的程序似乎能看到更多 netstat -tpanl | grep 127.0.0.1
参考书籍 《Linux 大棚命令百篇》
不输出,重定向到黑洞 curl -s -o /dev/null URL
格式化返回的json数据:curl xxxx|python -m json.tool
代替 netstat 的强大工具
替代方案
用途 | net-tool | iproute2 |
---|---|---|
地址和链路配置 | ifconfig | ip addr, ip link |
路由表 | route | ip route |
ARP表 | arp | ip neigh |
VLAN | vconfig | ip link |
隧道 | iptunnel | ip tunnel |
组播 | ipmaddr | ip maddr |
统计 | netstat | ss |
ss
ss -s
ss -l
ss -pl
ss -a
这是VPN的技术理论基础
别说的那么神乎其神, 用的时候, 连个Tomcat开的8080都查不到
net-tools 和 iproute 对应关系
作用 | net-tools用法 | iproute2用法 |
---|---|---|
展示本机所有网络接口 | ifconfig | ip link [show] |
开启/停止某个网络接口 | ifconfig ech0 up/down | ip link up/down eth0 |
给网络接口设置/删除IP | ipconfig eth0 10.0.0.0.1/24 / ifconfig eth0 0 | ip addr add/del 10.0.0.1/24 dev eth0 |
显示某个网络接口的IP | ifconfig eth0 | ip addr show dev eth0 |
显示路由表 | route -n | ip route show |
添加删除默认网关 | route add/del default gw 192.168.1.2 eth0 | ip route default via 192.168.1.2 eth0 / ip route replace default via 192.168.1.2 dev eth0 |
添加ARP | arp -s 192.168.1.100 00:0c:29:c5:5a:ed | ip neigh add 192.168.1.100 lladdr 00:0c:29:c5:5a:ed dev eth0 |
删除ARP | arp -d 192.168.1.100 | ip neigh del 192.168.1.100 dev eth0 |
展示套接字状态 | netstat -l | ss -l |
ip route add/del 192.168.2.0/24 via 192.168.1.254
tcpdump -i eth0 -nn -X 'port 53' -c 1
root用户才有运行权限
列出可以选择的抓包对象 tcpdump -D
(USB设备也能抓?)
sudo apt install netcat
开始监听端口 : nc -l 11044
nc 127.0.0.1 11044
任一方退出nc 就终止了连接端口扫描 nc -z -v -n -w 2 127.0.0.1 20-33
连接开放的端口 nc -v host port
传输文件 (相同的还有 ftp scp)
nc -v -l 12345 < temp_out.md
nc -v -n host port > temp_in.md
< >
互换即可传输文件夹
tar -cvPf - /root/book/ | nc -l 12345
nc -n host port | tar -xvPf -
gzip -czvPf -xzvPf
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,认证用的是ssh 所以也能使用sshpass
-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-i: 指定私钥文件
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。
scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
注: scp rcp wget rsync 几种传输文件的方式
同步命令 (个人倾向于本地和远程, 书上称为源端和目的端) 命令参数详解 | 本地和VPS0之间同步数据
同步到 rsync file user@host:path
上, 是将这里的file文件覆盖远程的目录下的file文件,不像git那样
quick check策略
。使用后:让修改时间也同步,如果修改时间一致,就不同步(它不考虑文件内容,这是个坑)。上面的I策略
的-H
只要文件不一样,就会触发同步,该命令确保远程的是和本地的一致,本地的直接覆盖远程的
只要rsync命令对本地有读权限,对远程有写权限,就能确保目录是一致的
rsync只能以登录远程的账号来创建文件,它不可能将文件的组信息,用户信息也一致,除非是root用户可以做到
【其他特别参数】
--delete
如果本地没有该文件 远程就会删掉
--delete-exclude
删除远程指定的文件--delete-after
默认是先清理远程文件再同步,使用该选项就相反了先同步再删除需要删除文件--exclude
排除掉某些文件不同步 可以使用多次
--excule-from
如果要排除的文件很多,可以将文件名放在一个文本文件里,然后使用该选项读取该文件--partial
断点续传 可以简写-P--progress
显示传输进度信息特性和优势:支持 HTTP HTTPS FTP协议
- 能够跟踪 HTML 和 XHTML 即可以下载整站,但是注意wget会不停的去下载HTML中的外链,无休无止
- 遵守 robots.txt 标准的工具
- 支持慢速网路和不稳定的下载,当下载失败就会不断重试,直到下载成功
- 支持断点续传
wget 配置文件 /etc/wgetrc
~/.wgetrc
两个文件配置(区别是全局和当前用户)wget的默认行为
例如 -X配置:wget -X js,css URL
排除两个文件夹不下载
.wgetrc
文件里配置 exclude_directories=js,css
wget -X '' -X js,css URL
-X
,两个配置文件。这三者的配置,wget是取并集的, 使用了-X ''
后就只看后面的-X 参数
参数:
-r
递归选项--background
即使 你Ctrl D/exit也不会中断执行--execute robots=off
-r
: URL:a/b/c/-r
再用上 --cut-dirs=1
: URL:/b/c/-r
再用上 -nH
:a/b/c/-r
再用上 -nH --cut-dirs=1
: /b/c/-r
再用上 -nH --cut-dirs=2
: /c/-nd
若有重名文件,自动重命名-x
例如:com.github.com/a/b/ --> com/github/com/a/b/--tries=number
设置下载失败后重试的次数-O
将下载的所有文件的内容追加到指定的文件,不会新建任何文件 和 -o 对比:这是是指定输出日志文件-nc
, wget会先比较时间戳,然后下载,且多次下载同名文件会自动添加.1.2这样的后缀-N
会考虑时间戳以及文件大小,但是不能和 -nc 同时设置--limit-rate=N
默认单位是b,可以指定单位 k m ,
--waitretry
设置请求重试的秒数, 如果设置的是10秒, 第一次失败后就会等1s,然后第二次失败就等2s...直到递增到10s,然后结束
ftp host port
前提是两个设备处于同一个局域网, 也就是说连同一个WIFI, 或者电脑开热点给手机连?
手机安装 FeelFTP , 然后设置编码为utf-8, 开启服务器
或者安装ES文件浏览器, 也带有FTP服务器, 但是不稳定, 切出去就停了, 而且不能选择上SDK卡
安装FileZila 建立连接, 然后就能方便的用鼠标进行传输了
sudo apt-get install vsftpd -y
sudo systemctl start vsftpd.service
sudo useradd -d /home/uftp -s /bin/bash uftp
sudo passwd uftp
sudo rm /etc/pam.d/vsftpd
sudo usermod -s /sbin/nologin
uftpsudo chmod a+w /etc/vsftpd.conf
/etc/vsftpd.conf
# 限制用户对主目录以外目录访问
chroot_local_user=YES
# 指定一个 userlist 存放允许访问 ftp 的用户列表
userlist_deny=NO
userlist_enable=YES
# 记录允许访问 ftp 用户列表
userlist_file=/etc/vsftpd.user_list
# 不配置可能导致莫名的530问题
seccomp_sandbox=NO
# 允许文件上传
write_enable=YES
# 使用utf8编码
utf8_filesystem=YES
sudo chmod a+w /etc/vsftpd.user_list
uftp
sudo chmod a-w /home/common
mkdir /home/common/public && sudo chmod 777 -R /home/common/public
sudo systemctl restart vsftpd.service
~$ sudo mkdir /home/common
~$ sudo touch /home/common/welcome.txt
~$ sudo useradd -d /home/common -s /bin/bash common
~$ sudo passwd common
~$ sudo rm /etc/pam.d/vsftpd
~$ sudo usermod -s /sbin/nologin common
~$ sudo chmod a+w /etc/vsftpd.conf
~$ sudo vim /etc/vsftpd.conf
~$ sudo vim /etc/vsftpd.user_list
~$ sudo chmod a-w /home/common
~$ sudo mkdir /home/common/public && sudo chmod 777 -R /home/common/public
~$ sudo systemctl restart vsftpd.service
服务端
sudo pip install shadowsocks
sudo ssserver -p 443 -k sd -m aes-256-cfb
sudo ssserver -p 443 -k sd -m aes-256-cfb --user nobodu -d start
sudo ssserver -d stop
sudo less /var/log/shadowsocks.log
客户端
sudo vim /etc/ss.json
{
"server":"127.0.0.1",
"server_port":443,
"localport":1080,
"password":"password",
"timeout":600,
"method":"aes-256-cfb"
}
sslocal -c /etc/ss/json
iptables -L -n
有时候会发生这样的事情