最新公告
  • 欢迎您光临编程知识分享网 加入我们
  • 443端口记录

    一些互联网服务提供商或公司可能已经阻止了大多数网络端口,并且只允许使用少数特定端口(如: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.pidsslh 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.pidsk 2754 1432 0 15:51 pts/0 00:00:00 grep –color=auto sslh
    最后,我们来验证下使用 443 端口进行 SSH 和 HTTPS 访问。

    $ ssh -p 443 sk@192.168.43.2sk@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/advantageLast login: Mon Aug 14 15:52:20 2017 from 192.168.43.192sk@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

    赞赏

    微信赞赏支付宝赞赏

    编程知识分享网,一个有趣的平台!
    编程知识分享网|编程教程|资源下载|源码下载 » 443端口记录

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    关于编程知识分享网(www.ittce.com)
    编程知识分享网,一个有趣的平台,小心有毒!

    发表评论

    提供最优质的资源集合

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级