公网端口不够用,用这款神器轻松搞定它!
一些互联网服务提供商或公司可能已经阻止了大多数网络端口,并且只允许使用少数特定端口(如:80 和 443)来进行服务访问,以加强其安全性。
在这种情况下,如果我们需要将更多的服务暴露在公网上,我们该怎么办呢?这时你别无选择,只有为多个程序共用相同的端口,比如:共用 HTTPS 的端口 443。
那怎么样才能实现不同程序复用相同端口呢,这时你就需要 SSLH 这款神器。
SSLH 是一款采用 C 语言编写的开源端口复用软件,目前支持 HTTP、SSL、SSH、OpenVPN、Tinc、XMPP 等多种协议识别。它主要运行于 *nix 环境,源代码托管在 GitHub 上。
项目地址:https://github.com/yrutschle/sslh
更简单地说,SSLH 允许我们在 Linux 系统上的同一端口上运行多个程序/服务。因此,您可以用同一端口来同时使用两种服务。如果你遇到大多数端口被防火墙阻止的情况,SSLH 就可以帮你派上大用场。下面我们就来看一个 SSL 和 SSH 同时复用同一端口的实例。
安装 SSLH
SSLH 适用于大多数 Linux 发行版,因此您可以使用默认包管理器进行安装。
在 Debian / Ubuntu 上
$ sudo apt-get install sslh
在 RHEL / CentOS 上
# 需要先安装 EPEL 仓库
$ sudo yum install epel-release
$ sudo yum install sslh
配置 Web 服务器
首先,我们需要安装一个 Web 服务器,并且配置它接受 HTTPS 请求。确保这个服务只监听在 localhost,当然也可以配置它监听在非标准端口,如:2443,这里我们以 Nginx 为例。
安装 Nginx
# RHEL / CentOS
$ yum install nginx
# Debian / Ubuntu
$ apt install nginx
配置 Nginx
修改配置让其只监听 localhost 接口,即:127.0.0.1:443
或 localhost:443
。
$ vim nginx.conf
# 找到如下行内容
listen 443 ssl;
# 并将其更改为以下内容
listen 127.0.0.1:443 ssl;
配置 SSLH
接下来,我们需要修改 SSLH 的配置文件的如下几处。
$ sudo vi /etc/default/sslh
# 找到以下行:
Run=no
# 并将其更改为:
Run=yes
# 修改以下行以允许 SSLH 在所有可用接口上侦听端口 443。
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
修改完成后,记得保存并关闭配置文件。这里在简单说下几个选项的含义
-–user sslh : 用此指定的用户名运行 SSLH。
-–listen 0.0.0.0:443 : 指定 SSLH 在所有接口上监听 443 端口。
-–sshs 127.0.0.1:22 : 将 SSH 流量转发到 localhost 上的 22 端口。
-–ssl 127.0.0.1:443 : 将 HTTPS/SSL 流量转发到 localhost 上的 443 端口。
启动 SSLH 服务
$ sudo systemctl enable sslh
$ sudo systemctl start sslh
测试 SSLH 服务
验证 SSLH 守护程序是否正在侦听 443 端口。
$ ps -ef | grep sslh
sslh 2746 1 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sslh 2747 2746 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sk 2754 1432 0 15:51 pts/0 00:00:00 grep --color=auto sslh
最后,我们来验证下使用 443 端口进行 SSH 和 HTTPS 访问。
$ ssh -p 443 sk@192.168.43.2
sk@192.168.43.2's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-89-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Mon Aug 14 15:52:20 2017 from 192.168.43.192
sk@ubuntuserver:~$
同时使用浏览器访问 https://SERVER_NAME
这个地址也是可以正确访问的。
至此,我们就验证了 SSLH 确实可以在同一端口提供多种服务。
参考文档
https://linux.cn/article-11247-1.html
https://www.ostechnix.com/sslh-share-port-https-ssh/
https://huataihuang.gitbooks.io/cloud-atlas/service/ssh/sslh_multi_service_in_one_port.html
https://it.baiked.com/linux/linuxcommon/4525.html
公网端口不够用,用这款神器轻松搞定它!相关推荐
- 华为手机怎么编辑PDF?一款神器轻松搞定
PDF文件相信下载过文献或者已经工作的都已经接触过,PDF文件里面的内容是不可以随意修改的,如果要改动的话需要使用到专业的PDF编辑器,PDF编辑器非常的贵,能做PDF编辑器的厂商那就更少了.福昕就是 ...
- 安卓数据转移到iphone老是中断_安卓换iPhone数据怎么转移?这款神器一键搞定
每天12:18准时给大家惊喜! 大家好!我是好奇仔,热衷于搜罗和分享各种好用.实用的软件神器和资源,有手机软件.办公软件.APP,还有网站资源-- 来自:PConline, 作者:我爱我家 换新手机了 ...
- PDF转成高清图片怎么转?借助这几款软件轻松搞定
大家应该都知道PDF是一种易储存且兼容性强的文件格式,很多工作中的小伙伴应该都喜欢使用它来保存文件.但是当你想将一个较大的PDF文件发送给别人查阅时,会不会需要花费较多的时间?告诉你一个更简单的方法, ...
- echarts 大屏可视化_看似复杂炫酷的数据可视化设计,用这波神器轻松搞定!
数据大屏与数据可视化 数据可视化是目前对数据展示最常用的方式.数据的可视化设计有助于将复杂的数据,用最易理解的方式展示在用户的面前. 数据可视化在中后台的设计中很常见,通常主要用于分析和决策,对实时性 ...
- 局域网速度测试,三款软件轻松搞定(转)
局域网络可谓随处可见,我们也十分关注其实际运行速度如何,比如两台计算机间的文件传输.访问对方计算机的快慢等.而决定局域网络速度的因素很多,又不可能通过简单的操作检测出速度的大小:同时也希望能有一些软件 ...
- 公众号内文章懒得翻,巧用搜索神器轻松搞定
目前,公众号内文章已近600,公众号的关注小伙伴也越来越多,很多小伙伴都是通过发送消息方式查找想要的文档,平台也尽可能的一一列举常用的关键字,但是也有漏网之鱼,在此,为大家推荐一个更方便.有效的方法, ...
- 一键加速去不掉加锁的_老旧油渍去不掉?这几款清洁神器帮你轻松搞定油污难题...
生活中,我们常常被油污困扰,经常因为一点点的油污毁掉本来非常完美的一身衣服,让开心的外出变成烦躁和不快.那么面对该死的"油污"我们真的束手无策了吗?"NO",有 ...
- 神器!用Python轻松搞定验证码!
转自:大邓和他的Python 大家好,今天给大家介绍一款通用验证码识别OCR库的神器,项目地址:https://github.com/sml2h3/ddddocr.市场上常见的点选类验证码图片如下图所 ...
- 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...
对大数据的重视让很多企业都在纷纷寻找更好的大数据处理及分析方法?这款数据分析软件轻松搞定! 一.数据采集 虽然每天互联网都会产生大量的数据,对于企业来讲,要搜集对自己企业有用的数据才是真的大数据.首 ...
- 还在用Word写论文?收下这个排版神器,轻松搞定所有公式!
写论文一点也不可怕 可怕的是论文排版 稍微修改了下字体, 插图就不知道跑哪去了, 好不容易挪了回来, 文字又打乱了, 文字排好了 参考文献又乱了? 图片与公式显示又乱了 写论文只是费脑子 排版简直是要 ...
最新文章
- macos apache php,如何在mac上配置apache和php
- position 再谈
- android 电源管理 wakelock 唤醒锁机制
- [css] 说说你对z-index的理解
- 【今日CS 视觉论文速览】 21 Jan 2019
- php获取网页内容方法总结
- mysql里的各种锁
- postgis之获取二进制的长度
- C++ 类的多态四(虚析构函数的重要性)
- 全国计算机b类一级考试试题题库,全国计算机等级考试模拟题:一级B试题(一)...
- PLSQL 14.0.6 安装使用教程
- 百度地图离线API及地图数据下载工具-尝鲜篇
- 5-2. 已有的小车实现samba文件共享
- CSS---足球场的实现,纪念2022世界杯(:root的使用)
- html写钢琴键盘按键错乱,键盘按键错乱怎么修复
- 洛克人java下载_洛克人-威利博士末日
- ubuntu下qt模拟键盘按键按下_基于QT的跨平台虚拟键盘设计与实现
- 文学鼻祖网站关闭服务器,华语网络文学鼻祖网站“榕树下”关站 “享年”23岁...
- -Dmaven.multiModuleProjectDirectory system property is not set
- MySQL配置文件my.cnf优化