首页
文章
标签
关于
基于ssh隧道转发端口
发布于: 2022-5-10   更新于: 2023-1-20   未收录
文章字数: 78   阅读时间: 1 分钟   阅读量:

ssh端口转发(ssh port-forward)

SSH 除了登录服务器,还有一大用途,就是作为加密通信的中介,充当两台服务器之间的通信加密跳板,使得原本不加密的通信变成加密通信。这个功能称为端口转发(port forwarding),又称 SSH 隧道(tunnel)。 端口转发有两个主要作用:

  1. 将不加密的数据放在 SSH 安全连接里面传输,使得原本不安全的网络服务增加了安全性,比如通过端口转发访问 Telnet、FTP 等明文服务,数据传输就都会加密。

  2. 作为数据通信的加密跳板,绕过网络防火墙。

端口转发有三种使用方法:本地转发,远程转发,动态转发。 因为常用到了前两种转发,这里只介绍前两种转发。

1. 本地转发

本地转发(local forwarding)指的是,将目标服务器的端口(target-host:target-port) 转发跳板机(tunnel-host) 映射到本地端口(local-port); 然后访问本地的端口(local-port)就可以通过跳板机(tunnel-host)转发到目标服务器的端口(target-host:target-port);

  • sh -L local-port:target-host:target-port tunnel-host

示例:

  • 转发redis到本地16379
    • ssh -L 16379:127.0.0.1:6379 dev.hujian.xyz -N

2. 远程转发

远程转发指的是在远程 SSH 服务器建立的转发规则。 它跟本地转发正好反过来。建立本地计算机到远程计算机的 SSH 隧道以后,本地转发是通过本地计算机访问远程计算机,而远程转发则是通过远程计算机访问本地计算机。它的命令格式如下。

ssh -R remote-port:target-host:target-port -N remotehost

示例:

  • 远程计算机通过curl http://my.public.server:8080 访问本地的80 web服务
    • ssh -R 8080:localhost:80 -N my.public.server

3. k8s端口本地转发:

redis端口转发示例:

  • kubectl port-forward service/redis -n devops-test 26379:6379

4 参考连接:

kelleygo
随笔记录,为技术沉淀.
目录
相关文章
ubuntu宿主机部署ss-local客户端
shadowsocks-libev基于ubuntu宿主机部署ss-local客户端.md 1. 安装 1.1 准备环境: Linux ubuntu 6.2.0-20-generic ubuntu 2023-04 amd64 基于ubuntu宿主机安装 shadowsocks-libev和v2ray-plugin 1.2 安装shadowsocks-libev: sudo apt install shadowsocks-libev 1.3 安装v2ray-plugin 1 2 3 4 wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.2/v2ray-plugin-linux-amd64-v1.3.2.tar.gz tar -zxvf v2ray-plugin-linux-amd64-v1.3.2.tar.gz mv v2ray-plugin_linux_amd64 /usr/bin/v2ray-plugin chmod 775 /usr/bin/v2ray-plugin 1.3 配置shadowsocks-libev配置文件 vi /etc/shadowsocks-libev/config.json { "server": "domain.com", "server_port": 443, "password": "password", "method": "aes-128-gcm", "local_address": "0.
2022-8-10
navicat 15注册码
注册码: NAVH-WK6A-DMVK-DKW3
2022-5-19
ansible自动化安装docker
ansible自动化安装docker.md 本地软件准备 支持linux/macOS上运行。 1. 环境依赖: 依赖 python3-pip, 安装ansible ,以ubuntu2204为例 sudo apt update # 更新python版本 sudo apt install python3-pip -y # 安装ansible sudo apt install ansible # 验证 pip 是否安装成功: python3 -m pip --version pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) 2. 脚本下载 ansible-install-docker 快速安装docker 1.在hosts.yml中添加要部署的ssh登录信息/服务器内外网IP地址,比如: 1 2 3 4 5 6 7 8 9 dev: #这个命名在1中被引用 hosts: 192.
2025-3-18
ubuntu2404手动安装docker
ubuntu手动安装docker.md Ubuntu 24.04.1 LTS 安装docekr-compose docker; 非snap 安装. 查看系统版本: # lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble 一 安装前准备 强制删除snap安装的docekr,如果没有使用snap安装过docker请跳过。 sudo snap remove –purge docker 二 安装步骤: sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.
2025-3-18
Centos7.x配置Go开发环境
Centos7.x配置Go开发环境 安装golang 准备环境 $ sudo yum update $ sudo yum install wget vim -y 源码包编译安装(可下最新版本): $ wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz $ sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz https://studygolang.com/dl下载最新的源码包编译 设置环境变量 Go代码必须放在工作空间中,实际上就是一个目录,且必须包含src、pkg、bin三个子目录。它们的用途如下: bin:包含编译后的可执行命令 pkg:包含包对象 src:包含Go的源文件,它们被组织成包 因此首先创建go语言的工作空间: $ mkdir $HOME/gowork 然后在配置文件中添加环境变量 $ vim /etc/profile 加入以下内容: # Golang export GO111MODULE=on export GOROOT=/usr/local/go export GOPATH=$HOME/gowork export GOCACHE=/tmp/gocache export GONOSUMDB="github.
2024-4-21