Linux隧道端口映射和转发
1.本地ssh可以登录远程服务器,(密码或者秘钥)
2.远程数据库需要赋权限给隧道端的ip
命令:
ssh -NCPfg [email protected] -L 3388:192.168.1.1:3306
参数:
-C 使用压缩功能,是可选的,加快速度。
-P 用一个非特权端口进行出去的连接。
-f 一旦SSH完成认证并建立port forwarding,则转入后台运行。
-N 不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)
-g 表示远程机器可以连接到这个端口
这里的[email protected]是连接远程服务器的用户名和IP
-L 3388:192.168.1.1:3306 这里表示建立的隧道,3388是本机端口,通过3388和远程服务器建立隧道,192.168.1.1是内网ip,可以用127.0.0.1,当然也可以用外网ip,这里要注意数据库要给这个ip赋权,因为隧道连接实际上就是数据库连接的这个ip ,后面的是远程数据库的端口
这个命令在本地运行
运行这个命令会在本地机器上开启3388端口
ss和nestat 和lsof可以看到,开启了127.0.0.1:3388
连接:
本地装好mysql客户端
mysql -u用户名 -P 3388 -h127.0.0.1 -p密码
恭喜你登陆了
ssh -NCPfg -itmp [email protected] -L 3388:127.0.0.1:3306
防火墙
https://blog.csdn.net/s_p_j/article/details/80979450
CentOS Rinetd安装
这东西在大负载使用的时候,会存在问题,最好是用nginx来做代理
下载rpm包
https://centos.pkgs.org/7/nux-misc-x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm.html
rpm -ivh rinetd-0.62-9.el7.nux.x86_64.rpm
0.0.0.0 6379 db-gocashback-redis.gocashback.com 6379
systemctl start rinetd
防火墙操作
https://blog.csdn.net/s_p_j/article/details/80979450
服务操作
查看服务列表:systemctl list-unit-files
设置开机启动:systemctl enable postfix.service
取消开机启动:systemctl disable postfix.service
systemctl status/start/stop/restart postfix.service
安装SQUID代理
yum install squid
vim /etc/squid/squid.conf
设置指定的ip可用
acl localnet src x.x.x.x/32
设置ip隐藏
forwarded_for delete
via off
follow_x_forwarded_for deny all
request_header_access X-Forwarded-For deny all
systemctl enable squid.service
systemctl start squid.service
SSH通过跳板机登录/执行命令
ssh root@目标主机IP -i 登录目标主机的Key -o ProxyCommand='ssh -A ops@跳板机IP -i 登录跳板机Key -W %h:%p -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "需要在目标主机上执行的命令"
UserKnownHostsFile 忽略ssh目录下的known_hosts文件
StrictHostKeyChecking 不要询问是否接受key的提示
ProxyCommand 通过该参数里的命令建立通道
上面2处的-i指定的private key都是当前主机目录下的key
PS命令
查看进程树
pstree -ap 进程id
查看进程的运行时间
ps -eo pid,lstart,etime,cmd | grep nginx
看phpfpm在干什么
strace -p `curl -s http://127.0.0.1/fpm_status?full | grep -C 2 "Finishing" | grep "pid" | awk '{print $2}' | awk 'END {print}'`