服务器系统为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  
目录
相关文章
|
6天前
|
缓存 负载均衡 安全
反向代理服务器如何提升信息安全
反向代理服务器如何提升信息安全
|
1月前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
2月前
|
存储 Ubuntu 网络协议
|
29天前
|
Shell Windows
Windows服务器 开机自启动服务
Windows服务器 开机自启动服务
14 0
|
2天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
40 2
|
8天前
|
JavaScript 前端开发 UED
Vue工具和生态系统: Vue.js和服务器端渲染(SSR)有关系吗?请解释。
Vue.js是一个渐进式JavaScript框架,常用于开发单页面应用,但其首屏加载较慢影响用户体验和SEO。为解决此问题,Vue.js支持服务器端渲染(SSR),在服务器预生成HTML,加快首屏速度。Vue.js的SSR可手动实现或借助如Nuxt.js的第三方库简化流程。Nuxt.js是基于Vue.js的服务器端渲染框架,整合核心库并提供额外功能,帮助构建高效的应用,改善用户体验。
11 0
|
24天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
1月前
|
弹性计算 运维 Kubernetes
云原生K8S场景自动化响应ECS系统事件
客户云原生K8S场景下,通过社区开源NPD+Draino+Autoscaler零开发,对接响应ECS主动运维事件,通过自动响应事件减少非预期宕机。
|
1月前
|
存储 Ubuntu 网络安全