git

contos 关于端口

  • 查看端口占用 netstat -ntlp

  • 列出所有端口 netstat -a

  • 列出所有 tcp 端口 netstat -at

  • 查询端口是否被占用,被哪个进程占用 两种方式 netstat -anl | grep "80"lsof -i:80

  • 只显示监听端口 netstat -l

  • 只列出所有监听 tcp 端口 netstat -lt

  • 在 netstat 输出中显示 PID 和进程名称 netstat -p

  • 在 netstat 输出中不显示主机,端口和用户名 netstat -n

参数:

1
2
3
4
5
6
7
8
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等

跨机拷贝

scp [参数] [原路径] [目标路径]

参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  • scp local_file remote_username@remote_ip:remote_folder

  • scp local_file remote_username@remote_ip:remote_file

  • 如果不指定用户名,命令执行后需要输入用户名和密码scp local_file remote_ip:remote_folder

  • scp root@192.1.22.34:/opt/soft/demo.tar /user/

  • scp -r root@192.1.22.34:/opt/soft/demo /user/

telnet命令用于远端登入

可以测试端口是否能通,有些使用服务器能 ping 通,但是由于防火墙或者其他的因素,导致端口被禁

  • 用法 telnet ip port telnet 211.149.252.53 22000

curl 是常用的命令行工具,用来请求 Web 服务器

  • 不带有任何参数时,curl 就是发出 GET 请求 curl https://www.example.com

  • -b 参数用来向服务器发送 Cookie curl -b 'foo=bar' https://www.example.com 生成一个标头Cookie: foo=bar

  • -d 参数用于发送 POST 请求的数据体 curl -d'login=emma&password=123'-X POST https://www.example.com

  • 也可以用-X POST 指定 curl -d 'login=emma' -d 'password=123' -X POST https://www.example.com

  • 使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。

  • -d参数可以读取本地文本文件的数据,向服务器发送,curl -d '@data.txthttps://www.example.com

  • -F参数用来向服务器上传二进制文件 curl -F 'file=@photo.png' https://www.example.com

  • 上面命令会给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传

  • 上面命令指定 MIME 类型为image/png,否则 curl 会把 MIME 类型设为application/octet-stream

  • -H参数添加 HTTP 请求的标头 curl -H 'Accept-Language: en-US' https://www.example.com

  • curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://www.example.com

  • 上面命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据

  • -i参数打印出服务器回应的 HTTP 标头 curl -i https://www.example.com

  • -k参数指定跳过 SSL 检测 curl -k https://www.example.com

  • –limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境 curl --limit-rate 200k https://www.example.com

  • -X参数指定 HTTP 请求的方法 curl -X POST https://www.example.com

Linux系统通过firewall限制或开放IP及端口

限制端口

  • 首先查看防火墙是否开启 systemctl status firewalld

  • 开启防火墙并设置开机自启 开启 systemctl start firewalld 设置 systemctl enable firewalld

  • 开放端口22 firewall-cmd --zone=public --add-port=22/tcp --permanent –permanent的设置永久生效,不加重启后失效

  • 重新防火墙,使设置生效 firewall-cmd --reload

  • 查看是否生效 firewall-cmd --zone=public --query-port=22/tcp

  • 查看当前系统打开的所有端口 firewall-cmd --zone=public --list-ports

  • 限制端口22 firewall-cmd --zone=public --remove-port=22/tcp --permanent (也需要重载)

  • 批量开放端口,如从100到500 firewall-cmd --zone=public --add-port=100-500/tcp --permanent

限制IP

  • 比如限制IP为192.168.0.200的地址禁止访问80端口即禁止访问机器 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject" (需要重载)

  • 查看已经设置的规则 firewall-cmd --zone=public --list-rich-rules

  • 解除IP地址限制 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" accept"

返回
顶部