ssh反向代理、动态代理、本地代理

缩略词

本机:   ssh命令发起方,即运行ssh命令的那台机器。也可简称ssh客户端。
远程机:ssh命令连接到的服务器,一般指运行ssh服务的那台机器。也可简称ssh服务端。
本地机群:能直接与本机通迅的主机集合,包含本机自身。
远程机群:能直接与远程机通迅的主机集合,包含远程机自身。

1、动态代理

动态代理一般用于代理服务器。

应用场景为:本地机群不能直接访问某些地址/端口,但远程机可以。本机通过建立一个指定本机端口,远程机端口不指定(动态)的连接,让本地机群可以通过该连接去访问那些地址(基于socks4和socks5协议)。

ssh -o ServerAliveInterval=20 -g -Nf -D 6060 proxy@47.44.161.114
参数说明
-o ServerAliveInterval=20代表心跳包,ssh在一段时间没数据后会把连接给断开。
-g允许其他主机连接到本机端口进行转发。
如果无效,要设置本机sshd_config文件,gatewayports yes。
-N不执行远程命令, 仅做端口转发(仅适用于协议版本2)。
-f将ssh切换到后台。
-D 6060指定以本机哪个端口做为转发端口。
proxy@47.44.161.114以指定帐号连接远程机。

2、反向代理

反向代理一般用于内网穿透。

应用场景为:本机在防火墙内,并且防火墙未向外开放本机(或本地网络内其他主机)端口,远程机有向外开放的可用端口,本机通过建立一个指定本机(或本地网络内其他主机)端口和远程机端口的连接(也可以理解成端口映射),让外部应用可以通过远程机端口访问本机(或本地网络内其他主机)端口。

ssh -o ServerAliveInterval=20 -g -Nf -R 5001:localhost:6060 proxy@47.44.161.114
参数说明
-o ServerAliveInterval=20代表心跳包,ssh在一段时间没数据后会把连接给断开。
-g允许其远程机群连接到远程机端口进行转发。
如果无效,要修改远程机sshd_config文件,gatewayports yes。
-N不执行远程命令, 仅做端口转发(仅适用于协议版本2)。
-f将ssh切换到后台。
-R 15001:localhost:6060反向转发,用值用:分隔为三项,格式为: <远程机端口>:<本地机群>:<端口>。
proxy@47.44.161.114以指定帐号连接远程机。

3、本地代理

本地代理应用场景一般是两类:一类是应用限制只能访问本机端口,而实际需要访问远程机端口;一类是某个网络环境只能允许一台主机访问远程机端口,而实际是网络区域内多台主机都有这个要求。

ssh -o ServerAliveInterval=20 -g -Nf  -L 5001:localhost:6060 proxy@47.44.161.114
参数说明
-o ServerAliveInterval=20代表心跳包,ssh在一段时间没数据后会把连接给断开。
-g允许本地机群连接到本机端口进行转发。
如果无效,要修改本机sshd_config文件,gatewayports yes。
-N不执行远程命令,仅做端口转发(仅适用于协议版本2)。
-f将ssh切换到后台。
-L 15001:localhost:6060本地转发,用值用:分隔为三项,格式为: <本机端口>:<远程机群>:<端口>。
示例里第二项localhost,代表的是远程机,用这种写法一般代表远程主机也只能本机访问该端口。
proxy@47.44.161.114以指定帐号连接远程机。

举个栗子

主机A、B、C在同一网络环境里面(通过公司VPN连接),主机B为公司内网linux服务器,主机A、C均可以ssh访问主机B。
主机X、Y可以互相通信,主机C能ssh访问主机X,但不能与主机Y直接互通。

如何让主机A访问主机Y上的SSH、HTTP等服务?

1. 主机X本地代理【将访问本主机X的61003端口的数据流量转发到远程主机Y的22端口上】

ssh -NfL 0.0.0.0:61003:${主机Y_IP}:22 127.0.0.1

2. 主机C反向代理【将访问远程主机B的51002端口的数据流量转发到远程主机X的61003端口上】

ssh -NfR 51002:${主机X_IP}:61003 root@${主机B_IP}

3. 主机A动态代理【将主机A设置为代理服务器,代理端口为9999】

ssh -NfD 127.0.0.1:9999 ${主机B_IP} -p 51002

4. 主机A访问主机Y上的SSH服务

ssh root@${主机B_IP} -p 51002

5. 主机A访问主机Y的HTTP服务

浏览器设置SOCKS5代理, 代理服务器地址127.0.0.1, 代理端口9999.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里是部署Vue3应用到Ubuntu服务器并使用Nginx作为反向代理,并且使用SSH证书来进行安全连接的步骤: 1. 在服务器上安装OpenSSH。可以使用以下命令安装: ``` sudo apt update sudo apt install openssh-server ``` 2. 生成SSH证书。使用以下命令生成证书: ``` ssh-keygen -t rsa ``` 该命令会在`~/.ssh`目录下生成`id_rsa`和`id_rsa.pub`两个文件,其中`id_rsa`为私钥,`id_rsa.pub`为公钥。 3. 在本地计算机上使用SSH连接到服务器。使用以下命令连接: ``` ssh username@server_ip_address ``` 其中`username`为服务器上的用户名,`server_ip_address`为服务器的IP地址。 4. 在服务器上安装Nginx。可以使用以下命令安装: ``` sudo apt update sudo apt install nginx ``` 5. 在服务器上安装Node.js和npm。可以使用以下命令安装: ``` sudo apt update sudo apt install nodejs sudo apt install npm ``` 6. 在服务器上安装Vue CLI: ``` sudo npm install -g @vue/cli ``` 7. 使用Vue CLI创建Vue3应用: ``` vue create my-app ``` 8. 进入应用目录并启动开发服务器: ``` cd my-app npm run serve ``` 9. 在Nginx中配置反向代理,并启用SSL证书。在Nginx的配置文件中添加以下内容: ``` server { listen 80; server_name example.com; # 修改为你的域名 return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name example.com; # 修改为你的域名 ssl_certificate /path/to/cert.pem; # 修改为你的SSL证书路径 ssl_certificate_key /path/to/key.pem; # 修改为你的SSL证书密钥路径 location / { proxy_pass http://localhost:8080; # 修改为你的应用监听的端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 10. 重新加载Nginx配置并启动Nginx服务: ``` sudo systemctl reload nginx sudo systemctl start nginx ``` 现在你的Vue3应用已经成功部署到Ubuntu服务器并使用Nginx作为反向代理,同时使用SSH证书进行安全连接。你可以通过访问你的域名来查看应用,并通过SSH连接到服务器进行管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值