首页自学使用linux ssh命令在公司内网搭一个自动维护的socks5

使用linux ssh命令在公司内网搭一个自动维护的socks5

adminadmin时间2024-06-28 19:32:28分类自学浏览37

   

    公司做百度推广需要切换不同省市的网络查看推广展示效果,为了简化推广专员的切换IP操作难度以及减少网管的维护量,决定在内网搭建一套socks5给推广专员使用。

    一方面网管只需要维护一个socks5即可,另一方面推广专员也只需要在浏览器端切换即可。在双方效率上都会有很大的。

    在内网搭建socks5的方法很多,主要平台为windows和linux两种,而外网机器主要是低配的linux vps,如果选用windows平台则需要安装相应的ssh软件,并且软件需要支持构socks5,需要自动重连等。而如果选linux平台,则只需要一个shell脚本即可,所以这次功能选择了linux平台实现。

    实现过程如下:
    1、设置本地服务器与线上服务器的秘钥登录,主要是为了免除密码的使用

    在本机使用ssh-keygen -t rsa命令生成秘钥、并拷贝到相应的服务器,包括本机。

    ssh-copy-id -i ~/.ssh/id_rsa.pub -p33022 test3@182.x.x.x
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@localhost

    2、实现ssh转socks5 

    在本次功能中,还一个个性化需求,linux实现了socks5 A,它将使用自己的socks5 A去实现一个socks5 B,这也是秘钥需要拷贝到本机的一个原因。

    ssh -f -N -D 0.0.0.0:1075 test3@182.x.x.x -p 33022

    ssh -f -N -D 0.0.0.0:1076 -o "ProxyCommand=nc -x 127.0.0.1:1075 %h %p" test4@143.x.x.x -p 66022

    以上命令,实现了内网linux的 1075和1076两个socks5 ,其中1076是通过1075连接到143.x.x.x构建1076的。

    以上命令中,1075和1076为设置监听, -p 33022 或 -p 66022为外网vps的ssh端口,如果是默认的22则不需要指定。

    3、实现自动维护的shell脚本,并加入crontab定时任务中。

    

#!/bin/bash

# 定义要检查的端口和相应的命令
port_commands=( [1075]="ssh -f -N -D 0.0.0.0:1075 test3@182.x.x.x -p 33022" [1076]="ssh -f -N -D 0.0.0.0:1076 -o "ProxyCommand=nc -x 127.0.0.1:1075 %h %p" test4@143.x.x.x -p 66022" )

# 遍历端口和命令的关联数组
for port in "${!port_commands[@]}"; do
  # 检查端口是否在监听
  netstat -an | grep -q ":$port "
  if [ $? -eq 0 ]; then
    echo "端口 $port 在监听"
  else
    echo "端口 $port 未在监听,执行相应命令: ${port_commands[$port]}"
    ${port_commands[$port]}
  fi
done

    4、如果有防火墙

    firewall-cmd --zone=public --permanent --add-port=1075/tcp

    firewall-cmd --zone=public --permanent --add-port=1076/tcp

    firewall-cmd --reload


    扩展思考:

    为了仅给推专员使用,避免其它部门使用,是不是能够设置一个密码。



本文《使用linux ssh命令在公司内网搭一个自动维护的socks5》peizhi/196.html

与《使用linux ssh命令在公司内网搭一个自动维护的socks5》

0
0
收藏0
吉视传媒:子公司中标1923.95万元安全监测系统建设项目

    未登录用户 回复需填写必要信息
    请先 登录 再评论,若不是会员请先 注册