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

   

    公司做百度推广需要切换不同省市的网络查看推广展示效果,为了简化推广专员的切换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


    扩展思考:

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



相关推荐

猜你喜欢

Dell R720 R420 快速服务代码和服务编号大全

Dell查个资料,下个驱动都要输入服务代码或产品编号。 有时候没在机器边就记不住。 DELL R720 产品服务编号: BKZCS12 快速服务代码: 25213311974 Dell R420 快速...

如何在python整合包使用pip安装更多依赖

如何在python整合包使用pip安装更多依赖

本次想在GPT-SoVITS-v2-240821整合包中安装一个flask,大致步骤如下 (1)在cmd下切换到 GPT-SoVITS-v2-240821目录中, (2)运行命令 "E:\GPT-S...

让linux的history记录时间 ip 用户等

修改一下,使这个日志能记录 时间 ip 用户等。 vim /etc/profile 追加 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed...

使用acme.sh实现服务器ssl证书自动签发续签

使用acme.sh实现服务器ssl证书自动签发续签

工具介绍 acme.sh是一个实现从letsencrypt 自动签发证书,自动更新续签证书的脚本。 大致了解流程之后,使用还是相对简单的。 (1)工具自己生成必要的ssl申请文件,无需干预 (2)设...

基于http-x-forward的nginx并发限制与拦截屏蔽

网站经常被扫描工具,列表爬虫,导致服务器性能开销很大,有些恶意的刷网站,经常导致服务器负载过高。 因为使用了CDN加速,以前基于IP地址的频率限制,拦截,防火墙拦截都无效了。 必须使用基于http-x...

创意工坊mod下载方式

创意工坊mod下载方式

单机玩游戏,看上一个mod想下载试下。在创意工坊上又是注册又是订阅的,就是找不以下载按钮。 最后找到了这种类似下载器的东西,可以下载到想要的mod。 mark一下, 这个方式不错,适合玩单机的。 h...

源格式转换 txt转m3u 在线工具及源码

源格式转换 txt转m3u 在线工具及源码

一般txt转m3u指的是不同播放器的源格式转换,而txt和m3u是两种流行的格式。 一般txt格式如下: 节目名称,节目URL 一般m3u格式如下: EXTINF:-1,节目名称 节目URL 有些节...