服务器系统为Ubuntu18.04.3,反向代理搭建隧道并加到开机自启

简介: 服务器系统为Ubuntu18.04.3,反向代理搭建隧道并加到开机自启

场景

目前有公网服务器A,内网服务器B,现在想通过反向代理的方式来访问内网服务器B。
A:123.123.123.123 端口为3577

1、配置思路

1.由于SSH在一段时间没有数据包之后会断开,所以最好直接使用autossh来配置反向代理。
2.现在将B服务器的22端口绑定到公网服务器A的某一端口PA上,那么当我们请求公网的PA时,公网服务器就会把请求转发到内网服务器上端口22上

2、反向代理

(注意:以下操作都在内网服务器进行,且我是在root角色下进行)

1.安装autossh,我的服务器上装的是Ubuntu18.04,可用以下命令进行安装

apt-get install autossh

2.然后添加我们的内网机器的ssh-key到公网以实现自动登陆:ssh-copy-id <公网机器A的登陆用户名>@<公网机器的ip地址>

ssh-copy-id root@123.123.123.123

如果本机并没有ssh的key,需要先执行ssh-keygen 再进行

3.测试免密登录

ssh root@123.123.123.123

4.利用autossh搭建反向隧道:
autossh -M 50533 -fCNR 3577:127.0.0.1:22 <公网机器A的ssh登录用户名>@<公网机器A的IP>

autossh -M 50533 -fCNR 3577:127.0.0.1:22 root@123.123.123.123

说明:

​ -M 添加一个端口用于心跳包的发送,该端口只要是服务器上一个可用的未被占用的端口(50533)就行
 -f 后台执行ssh指令
​ -C 允许压缩数据
​ -N 不执行远程指令
​ -R 将远程主机(服务器A)的某个端口转发到本地机器(内网服务器B)的指定端口
​ -L 将本地机器(客户机)的某个端口转发到远端指定机器的指定端口
​ -p 指定远程主机的端口

3、开机自启

(注意:这里是全新刚装好的系统)

1.ubuntu18.04不再使用initd管理系统,改用systemd后已经不支持rc.local 这个开机自动启动的脚本了,所以为了能继续用这个脚本,我们需要去编写一个ubuntu18 下的启动脚本,通过这个脚本来启动我的rc.local脚本。

2.systemd默认读取/etc/systemd/system下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完/lib/systemd/system/下会有rc-local.service文件,即我们需要的配置文件,链接过来

ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

执行命令查看rc-local.service的内容

cd /etc/systemd/system/
cat rc-local.service

如果最后没有[install]区块,则自己添加如下内容

[Install]
WantedBy=muti-user.target
Alias=rc.local.service

创建/etc/rc.local文件 touch /etc/rc.local

赋予权限 chmod 755 /etc/rc.local
说明:

chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。

一般是三个数字:

第一个数字表示文件所有者的权限

第二个数字表示与文件所有者同属一个用户组的其他用户的权限

第三个数字表示其它用户组的权限。

权限分为三种:读(r=4),写(w=2),执行(x=1)。

综合起来:
         可读可执行(rx=5=4+1)
         可读可写(rw=6=4+2)
         可读可写可执行(rwx=7=4+2+1)。

编辑rc.local文件并添加以下内容

#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# auto start autossh
autossh -M 50533 -fCNR 3577:127.0.0.1:22 root@123.123.123.123

echo "添加自启动脚本成功!" > /usr/local/test.log
exit 0

启用服务

sudo systemctl enable rc-local

启动服务

sudo systemctl start rc-local.service

说明:正常开启服务不会报错的(没有红色的Fail.........出现,说明能正常启动)

查看服务状态

sudo systemctl status rc-local.service

重启并检查test.log文件

sudo systemctl restart rc-local.service

cat /usr/local/test.log  
目录
相关文章
|
4天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
65 43
|
2天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
55 30
|
5天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
25 12
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
162 61
|
20天前
|
Ubuntu 芯片 开发者
Ubuntu 25 ARM 桌面系统抢先版发布:第一个Ubuntu ARM桌面系统
Ubuntu 25.04 将于2025年发布,首次支持ARM Desktop桌面版系统,为ARM架构设备如Mac M系列芯片、Raspberry Pi等带来全新的桌面体验。用户可通过虚拟机或双系统安装在Mac上运行Ubuntu ARM,抢先体验版已开放下载:[链接](https://www.baihezi.com/ubuntu/arm/desktop)。此版本不仅扩展了Ubuntu的硬件兼容性,还提供了丰富的功能和流畅的操作体验,适合开发者和技术爱好者尝试。
143 9
|
2月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
59 3
|
2月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
285 4
|
3月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
287 4
Linux系统之Ubuntu安装cockpit管理工具
|
3月前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
|
3月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
166 1