Squid代理服务器配置

需求是:通过外网机(跳板机)访问内网机,并为内网机提供访问网络的能力。

【跳板机T】+【内网机N】
公网IP:39.107.xx.xxx
跳板机IP:172.17.216.234
内网机IP:172.17.216.241
Squid代理服务器地址和端口:172.17.216.234:3128

写在前头,使用FinalShell配置跳板机和内网机,原理就是通过本地端口进行一次转发。

1、新建跳板机T的ssh连接,然后添加隧道,监听端口填个一般用不到的就行。 

2、新建内网机N的ssh连接,主机和端口则使用上面隧道配置的绑定ip和监听端口。

3、先访问跳板机T,再访问内网机N就ok了。

 

一、跳板机T安装Squid代理服务器 

1、安装Squid 

sudo apt update
sudo apt install squid

2、配置访问控制,修改/etc/squid/squid.conf文件,增加行信息如下,配置允许内网机N访问 

acl host241 src 172.17.216.241
http_access allow host241
access_log /var/log/squid/access.log squid

注意Squid的默认端口是3128,可在配置中进行修改http_port 

3、检查配置是否有误,然后重启使生效

squid  -k parse 
sudo systemctl restart squid

 4、使用NAT(网络地址转换),需启用 IP 转发  /etc/sysctl.conf

sudo sysctl -w net.ipv4.ip_forward=1

二、内网机N进行代理网络配置 

1、设置NAT规则,内网服务器上配置 MASQUERADE 规则,将内网服务器的流量重定向到外部接口 

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

 2、查看NAT表的规则,确认配置成功

sudo iptables -t nat -L

 3、配置代理,进入/etc/profile文件,增加行信息设置代理服务器的ip和端口号

export http_proxy=http://172.17.216.234:3128
export https_proxy=http://172.17.216.234:3128
export no_proxy=localhost,*.local,127.0.0.1,192.168.*.*

4、source /etc/profile 使配置生效 

source /etc/profile

 5、echo $http_proxy 查看是否配置成功

echo $http_proxy

6、重启网络

sudo systemctl restart networking  或者 sudo systemctl restart systemd-networkd

7、查看是否可以正常访问

curl www.baidu.com

如果可以正常访问,到此内网机就已经具备外网访问能力了。

注意ping命令不支持代理,请使用curl进行测试。

三、内网机N相关软件代理配置(选择性配置) 

#1、apt代理配置
#在/etc/apt/apt.conf.d 文件夹下修改/增加proxy.conf文件,增加行信息
Acquire::http::Proxy "http://172.17.216.234:3128";
Acquire::https::Proxy "http://172.17.216.234:3128";
Acquire::ftp::Proxy "http://172.17.216.234:3128";

#2、git代理配置
git config --global http.proxy 'http://172.17.216.234:3128'
git config --global https.proxy 'http://172.17.216.234:3128'

#3、docker代理配置(先安装docker)
#如果不知道路径,可以通过systemctl status docker查看
#修改/lib/systemd/system/docker.service文件,添加行信息
Environment="HTTP_PROXY=http://172.17.216.234:3128"
Environment="HTTPS_PROXY=http://172.17.216.234:3128"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.*.*"

四、内网机N环境安装(选择性安装)

注意:以下步骤如果您使用的系统版本不一致,可能会有些许不同。

1、安装docker 

#1. 更新系统包列表:
sudo apt update

#2. 安装所需的软件包以允许 `apt` 命令通过 HTTPS 使用存储库:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

#3. 添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

#4. 添加 Docker 的 APT 存储库:
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#5. 更新包列表:
sudo apt update

#6. 安装 Docker:
sudo apt install -y docker-ce docker-ce-cli containerd.io

#7. 启动 Docker 服务并设置它随系统启动:
sudo systemctl start docker
sudo systemctl enable docker

#8. 验证 Docker 是否正确安装:
sudo docker --version

#9. 最后,为了允许您的用户帐户使用 Docker 命令,您可以将您的用户添加到 `docker` 组中,注意:要使用户更改生效,您需要注销并重新登录到系统。
sudo usermod -aG docker $USER

2、安装OpenJDK 8 

sudo apt update
sudo apt install openjdk-8-jdk
java -version

#(可选)设置默认的Java版本。如果您同时安装了多个Java版本,可以使用以下命令选择默认版本
sudo update-alternatives --config java

 3、安装Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

#配置文件
/etc/caddy/Caddyfile
caddy reload --config ./Caddyfile
systemctl restart caddy

#配置示例
#跳板机T的Caddyfile
dev.example.com {
    reverse_proxy 172.17.216.241:80
}

#内网机N的Caddyfile
:80 {
    handle_path /api* {          
        reverse_proxy http://127.0.0.1:8081      
    }
}

 五、MysqlWorkbench和Navicat工具如何通过跳板机访问数据库?

MysqlWorkbench

 Navicat

六、SpringBoot中如何配置ssh访问内网数据库? 

=== 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/418107.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Python,maplotlib绘制树型有向层级结构图

使用Python,maplotlib绘制树型有向层级结构图 1. 效果图2. 源码2.1 plotTree.py绘制层级结构及不同样式2.2 plotArrow.py 支持的所有箭头样式 参考 前俩篇博客介绍了 1. 使用Python,networkx对卡勒德胡赛尼三部曲之《群山回唱》人物关系图谱绘制 2. 使用…

Python中reduce函数和lambda表达式的学习

reduce函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数…

基于cRIO9040 FPGA的图像处理流程

硬件准备 CompactRIO9040Basler GigE相机网线遵循GigE Vision标准的相机由高性能、多核cRIO设备支持,如cRIO-908x、cRIO-903x、cRIO-904x和cRIO-905x系列以及基于英特尔的sbRIO。 软件安装 参考:cRIO9040中NI9381模块的测试 此外,PC端需要安装VDM,VAS。 cRIO端,打开NI…

详解UDP/TCP套接字

详解UDP/TCP套接字 预备知识 理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址 源IP地址:发送主机的IP地址。目的IP地址:接收主机的IP地址。 认识端口号 端口号(port)是传输层协议的内容. 端口号是一个…

NVMFS5113PLWFT1G汽车级功率MOSFET 60V 10A/64A满足AEC-Q101标准

AEC-Q101认证标准详细解读: AEC-Q101是一种汽车电子元件可靠性标准,由汽车电子委员会(Automotive Electronics Council,简称AEC)制定。该标准旨在确保在汽车环境中使用的电子元件具有足够的可靠性和耐久性。 AEC-Q10…

Docker Compose实战指南:让容器管理变得简单而强大

🧨个人主页:明明跟你说过 🚩欢迎🎗️点赞😸关注❤️分享 😸希望本文能够对您有所帮助,如果本文有不足之处,或您有更好的建议、见解,欢迎在评论区留下您的看法&#xff0c…

力扣hot100题解(python版29-32题)

29、删除链表的倒数第N个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出&a…

苍穹外卖Day03——总结3

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day01——解决总结1中存在的问题https://lushimeng.blog.csdn.net/article/details/135473412苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/articl…

Node.js中的并发和多线程处理

在Node.js中,处理并发和多线程是一个非常重要的话题。由于Node.js是单线程的,这意味着它在任何给定时间内只能执行一个任务。然而,Node.js的事件驱动和非阻塞I/O模型使得处理并发和多线程变得更加高效和简单。在本文中,我们将探讨…

gRPC知识归档

文章目录 gRPC知识归档gRPC原理什么是gRPCgRPC的特性gRPC支持语言gRPC使用场景gRPC设计的动机和原则 数据封装和数据传输问题网络传输中的内容封装和数据体积问题JSONProtobuf(微服务之间的服务器调用,一般采用二进制序列化,比如protobuf&…

TVM 和模型优化的概述(1)

文章目录 1. 从 Tensorflow、PyTorch 或 Onnx 等框架导入模型(model)。2.翻译成 Relay3. lower 到 张量表达式。4. 使用 auto-tuning 模块 AutoTVM 或 AutoScheduler 搜索最佳 schedule。5. 选择最佳配置进行模型编译。6. lower 到 TIR。7. 编译成机器码…

计算机网络:数据链路层知识点汇总

文章目录 一、数据链路层功能概述二、封装成帧和透明传输三、差错控制(检错编码)四、差错控制(纠错编码)五、流量控制与可靠传输机制六、停止-等待协议七、后退N帧协议(GBN)八、选择重传协议(SR…

SAP PP学习笔记04 - BOM1 - BOM创建,用途,形式,默认值,群组BOM等

本章开始讲BOM的内容。 1,BOM的定义 (Bill of Materials) 物料清单(Bill of Materials,简称BOM)是描述企业产品组成的技术文件。在加工资本式行业,它表明了产品的总装件、分装件、组件、部件、…

小程序固定头部实现:van-nav-bar插件

用的是Vant的NavBar插件&#xff1a; https://youzan.github.io/vant-weapp/#/nav-bar#wai-bu-yang-shi-lei 效果图 页面使用&#xff0c;放开注释的地方就可以显示左边按钮 <van-nav-bar title"精益成本核算" fixed"true" placeholder"true&qu…

Vmware Esxi 部署Mac OS虚拟机

Vmware Esxi在创建虚拟机的时候是有Mac OS选项的&#xff0c;但是实际创建时&#xff0c;选择ISO开机后一直反复引导&#xff0c;是有问题的&#xff0c;原因是需要先解锁&#xff0c;需要在ESXI主机上修改配置并重启。 首先找到管理-服务-TSM-ssh&#xff0c;点击启动&#x…

SecureCRT for Mac/win:保障数据安全的专业终端SSH工具软件

SecureCRT for Mac/win是一款广受欢迎的专业终端SSH工具软件&#xff0c;为用户提供了强大的加密通信和数据安全功能&#xff0c;使其成为网络管理人员、系统管理员和开发人员的首选工具。无论是在Mac还是Windows操作系统下&#xff0c;SecureCRT都能够帮助用户轻松地进行远程访…

数字生活的未来:Web3如何改变我们的日常

随着技术的飞速发展&#xff0c;我们的生活正变得日益数字化。而Web3作为一种新型的互联网模式&#xff0c;正以前所未有的方式改变着我们的日常生活。在本文中&#xff0c;我们将深入探讨Web3技术的特点以及它如何改变我们的数字生活。 1. Web3的特点 Web3是基于区块链技术和…

uniapp 部署h5,pdf预览

1.hubuilderx 打包h5。 2.上传部署包到服务器。 解压部署包&#xff1a;unzip h5.zip 。 3.nginx配置。 user root; worker_processes 1; #worker_cpu_affinity 0001 0010 0100 1000; #error_log logs/error.log; #error_log logs/error.log notice; error_log /var/l…

ChatGPT-4 AI 绘图魔力释放

最近刚开通了 ChatGPT4&#xff0c;正好要设计一个网站图标&#xff0c;想测试一下它AI绘图的能力&#xff0c;让它根据文字描述生成一个想象中的图标 &#xff08;PS&#xff1a;如果想体验 GPT4 文生图&#xff0c;可以看这个教程 如何升级 ChatGPT 4.0&#xff09; 第1次交…

nginx使用详解--动静分离

什么是动静分离&#xff1f; 为了提高网站的响应速度&#xff0c;减轻程序服务器&#xff08;Tomcat&#xff0c;Jboss等&#xff09;的负载&#xff0c;对于静态资源&#xff0c;如图片、js、css等文件&#xff0c;可以在反向代理服务器中进行缓存&#xff0c;这样浏览器在请…