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访问内网数据库? 

=== 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux磁盘设备LVM介绍和常用场景说明

Linux常见的物理设备数据备份和负载均衡模式 1. LVM技术说明2. 相关概念3. 常用命令3.1 安装lvm命令3.2 创建分区3.3 格式化成LVM3.4 其他格式化 4. 常用场景4.1 创建LVM并挂载4.2 LVM扩容4.2.1 xfs扩容4.2.2 ext4扩容 4.2 缩减逻辑卷lv4.3 缩减vg:(迁移…

设计模式(二)单例模式

单例模式:确保一个类只有一个实例,并提供了全局访问点;主要是用于控制共享资源的访问; 单例模式的实现分为懒汉式和饿汉式。 懒汉式单例在需要时才会创建,而饿汉式单例则在类加载时立即创建实例; 单例模…

印象笔记 - Markdown 入门指南

一、Markdown 是什么? Markdown 是一种轻量级的「标记语言」,创始人为约翰格鲁伯,用简洁的语法代替排版,目前被越来越多的知识工作者、写作爱好者、程序员或研究员广泛使用。其常用的标记符号不超过十个,相对于更为复…

一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人

一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人 前言一、Deepfakes技术原理卷积神经网络(CNN):细致的艺术学徒生成对抗网络(GAN):画家与评审的双重角色…

MySQL 逗号分隔查询--find_in_set()函数

业务场景: 在使用MySQL的时候,可能的某个字段存储的是一个英文逗号分割的字符串(这里我们不讨论表设计的合理性),如图所示: 我们在查询的时候需要匹配逗号分割中的某个字符串,该怎么查询呢&am…

CRM 系统:管理工作流程的最佳利器全面解析

一个好的CRM解决方案能够使您业务保持活力——也就是管理客户。这意味着CRM系统提供了包括流程自动化、联系人管理、多渠道管理、数据分析等一系列工具。可以说,CRM是企业管理工作流程的最佳工具之一。 现在,市场上有上万种不同类型的CRM解决方案&#…

机器学习提升秘籍:Scikit-learn学习网站全攻略!

介绍:是一个开源的Python机器学习库,它提供了一整套用于数据挖掘和数据分析的工具,包括各种分类、回归、聚类和降维算法以及模型评估、选择和数据预处理等功能。以下是关于Scikit-learn的一些详细介绍: 算法覆盖广泛:S…

Mendix 开发实践指南|Mendix的核心概念

在当今快速变化的技术环境中,Mendix平台以模型驱动开发方法,重新定义了应用程序的构建过程。本章内容,将深入探讨Mendix的几大核心概念:模型驱动开发、微流、纳流 、 实体模型和页面,旨在帮助我们全面理解Mendix平台的…

java之Bean对象

1. 什么是Bean? Bean被实例化的,是被Spring框架所管理的Java对象。 Spring容器会自动完成Bean的实例化。将所创建的的Bean自动注入到Ioc容器中以供调用。 spring框架中 IOC容器中管理的对象就是Bean对象 2. 第三方bean Bean 因为第三方bean&#xff0…

​LeetCode解法汇总2476. 二叉搜索树最近节点查询

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

如何在Win系统从零开始搭建Z-blog网站,并将本地博客发布到公网可访问

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…

Linux系统编程之线程互斥锁的使用方法

文章目录 一、Linux上线程开发互斥锁概要二、创建及销毁互斥锁2.1 示例:主线程等待两个线程退出,1线程和2线程打印信息 三、互斥量的初始化问题 一、Linux上线程开发互斥锁概要 互斥量(mutex)从本质上来说是一把锁,在…

Stable Diffusion 模型分享:yayoi_mix(日本美女、真实、照片)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五 下载地址 模型介绍 yayoi_mix 是一个现实模型,是一个针对日本女性训练及合并的模型。 条目内容类型大模型基础模型SD…

前后端项目宝塔linux部署(springboot,vue,python)

宝塔linux安装就省略了,网上一堆 1.部署后端 1.首先把自己项目里面打包好的的jar包上传到服务器随便一个地方,我这里就上传到www/wwwroot下面了,宝塔的文件页面可以很便携上传 2.然后到下面这个页面 选那个java环境管理装个jdk&#xff…

全网首个GDB移植手册【Howto:Porting the GUN Debugger】翻译

Howto:Porting the GUN Debugger ✍【作者】:电子科大不知名程序员 📣【说明】:本文是自己在搭建mcore架构GDB时的参考的手册,具有很强的学习指导性,因原文档(链接:https://www.embecosm.com/a…

企业文件图纸加密有哪些?图纸文件加密防泄密软件如何选?

在现在的市场发展中,对于企业的图纸文件安全问题越来越重视,如设计图纸,重要文件等,一旦泄漏就会给企业造成巨大的经济损失。所以对企业管理者来讲,如何才能选择一款好用的适合本企业的图纸文件加密软件是非常重要的&a…

网络编程难点之select、poll与epoll详解

前言 为什么需要I/O多路复用技术? 首先,I/O多路复用技术主要被应用在需要高性能的网络服务器程序中。 高性能网络服务器程序需要做的事情就是供多个客户端同时进行连接并处理客户端传送过来的数据请求: 对于这种情况,很多人自然…

【招生】江西师范大学—地质灾害研究团队—地理与环境学院/鄱阳湖流域实验室

【招生】江西师范大学—地质灾害研究团队—地理与环境学院/鄱阳湖流域实验室 研究方向:InSAR、极化SAR、GNSS、地球物理、GIS 招生专业:GIS、人文地理 学院地址:江西南昌江西师范大学

什么是数据同步利器DataX,如何使用?

什么是 Datax? DataX 是阿里云 DataWorks数据集成 的开源版本,使用Java 语言编写,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、Ma…

python笔记_数据类型

定义:python的变量在使用前必须赋值,数据类型指的是变量指定的内存数据的类型 string字符串类型使用引号int整型整数float浮点型小数bool布尔值(逻辑)输出true/false A,整数类型 整型字节 1,python的整数有十六进制,十进制&#…