简说 SSH 隧道-- Local 与 Remote 端口转发

2024-04-16 18:58

本文主要是介绍简说 SSH 隧道-- Local 与 Remote 端口转发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、用 LocalForward 访问远端不能直接访问的东西

1.1 远端被墙了

假定你所在的网络无法直连某个服务器,比如 goodle.com,但你有一台 vps 可以连接 goodle.com,你可以这样

ssh -L 8888:goodle.com:80 yourname@yourvps.com
-L 表示 Local 转发
这一句表示 forward my (local)localhost port 8888 to goodle.com at port 80

连接成功之后,打开你的浏览器,输入 http://localhost:8888 哇,Goodle 能够访问了!

1.2 远端没有被墙,但它只允许自己(localhost)访问自己

比如你那台数据库服务器,只允许 localhost 访问。可你….就是想远程访问嘛

ssh -L 3406:localhost:3306 yourname@yourdbserver.com
这一句表示 forward my (local)localhost port 3406 to (remote)localhost at port 80
许多人被两个端口之间夹着的 localhost 迷惑,我上面这句解释够清楚了,希望你不要犯糊涂。

连接成功之后,

mysql -u uname -p pass -P 3406 -hlocalhost
这一句里的 localhost 当然是 (local)localhost

你现在就可以愉快地玩耍了。

二、用 RemoteForward 让远端访问你本地的东西

假设你做了个好玩的网站,想展示给你网上的朋友看。然而你并没有公网IP,或者你虽然有公网IP,但是你没有路由器管理密码… 总之他没有法子直接连接你的机器。

然而你有一台vps,那就好办了

ssh -R 8888:localhost:80 yourname@yourvps.com
-R 表示Remote 转发
这一句表示 forward my (local)localhost port 80 to (remote)machine at port 8888

你现在访问

http://yourvps.com:8888

理论上就可以看到你本地机器上运行的新奇网站了。当然,这只是理论上,你也有可能看不到,如果你 vps 上的配置不太合适的话。假定你遇到了这种情况….(其实大部分情况下都会遇到,因为 sshd 的默认配置是不允许这种事情发生的

首先登录到 vps 机器,然后
sudo vim /etc/ssh/sshd_config
把下面这行配置放到 sshd_config 的末尾(其实放别的位置也可以的
GatewayPorts yes
然后 sudo service ssh restart , 再来一遍。

三、别急,还有一点技巧要说

你也许注意到我们在创建隧道的同时,每次都登录进远端机器并且拿到一个终端(而且还不能随便关闭….,一关隧道就断了)。这确实有点蛋疼多此一举,毕竟我们只想开个隧道。

ssh -nNT -R 8888:localhost:80 yourname@yourvps.com

注意上面的黑体参数。 -nNT 可以保你只开隧道,不进终端。

这其实是一篇翻译文章(然而并不忠实原文)

这篇关于简说 SSH 隧道-- Local 与 Remote 端口转发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/909623

相关文章

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss