端口轉(zhuǎn)發(fā)(篇二) - xinetd

歡迎轉(zhuǎn)載,但請在開頭或結(jié)尾注明原文出處【blog.chaosjohn.com】

這是 端口轉(zhuǎn)發(fā) 系列文章的第二篇,歷史文章:

前言

筆者之前也過一篇文 - IPv6在虛擬機(jī)通過無線網(wǎng)卡橋接的網(wǎng)絡(luò)下無法使用(VMware WorkStation)

文中背景:筆者買了一臺 GK41,運(yùn)行的是隨機(jī)安裝的 Windows 10,同時借助 VMware Workstation 運(yùn)行了一臺虛擬客戶機(jī) Manjaro Linux。GK41 通過 RJ45 網(wǎng)口接入網(wǎng)絡(luò),虛擬機(jī)采用 橋接 該網(wǎng)口的有線網(wǎng)卡,給客戶機(jī) Manjaro Linux 提供網(wǎng)絡(luò)接入。至此,主機(jī)和客戶機(jī)都處于同一個局域網(wǎng)內(nèi),且都能分配到IPv4/IPv6,此時

  • GK41:192.168.0.41
  • Manjaro Linux:192.168.0.65

訴求

因為筆者不給 GK41 接顯示器,但又想通過 IPv6 遠(yuǎn)程訪問 Windows 10 的桌面,結(jié)合筆者之前造過 crontab + ddns6 的輪子,所以打算:

  • Manjaro Linux 配置為開機(jī)自啟
  • Manjaro Linux 上配置 ddns6,通過 cron 定時檢測并更新自身的 IPv6地址 到域名 manjaro-gk41.example.com
  • Manjaro Linux 轉(zhuǎn)發(fā)自己的 3389 端口到 Windows 103389 端口

3389 端口是 RDP(Remote Desktop Protocal)(微軟遠(yuǎn)程桌面協(xié)議) 的默認(rèn)端口

發(fā)現(xiàn)問題

最直接的想到了 篇一 中的工具 - rinetd

然后就是 一頓操作猛如虎,試完發(fā)現(xiàn)不靠譜

因為 rinetd 不支持 IPv6,它只監(jiān)聽 IPv4地址 和轉(zhuǎn)發(fā)到 IPv4地址,詳見 rinetd 在其 Github 上的某 Issue - does the program support ipv6?。

老爺子回復(fù)道:可能不會支持 IPv6 了,因為這玩意自從上世紀(jì)九十年代開始,我就沒怎么動過了,添加 IPv6 支持估計會很難。


rinetd 作者稱不會添加 IPv6 支持

解決問題

在尋找 rinetd 替代品的過程中,筆者發(fā)現(xiàn)了 xinetd

xinetdrinetd 都是 inetd("the Internet daemon") 的替代品。不過 inetd 最早跟隨 4.3BSD(1986年)推出,在如今的 主流 Linux 發(fā)行版 中都已經(jīng)被棄用了;而 rinetd 雖然在各大包管理器中均能找到,但它的作者也說了,自從上個世紀(jì)九十年代之后就沒怎么動過了;對于 xinetd,雖然最后一個版本 2.3.15 發(fā)布于 2012年5月9日,但Github主頁上最近一次更新還在2016年。

xinetd2.1.8.8pre* 版本(早于2000年6月4號),就增加了 IPv6 支持,太超前太牛逼了,詳見互聯(lián)網(wǎng)檔案館 2000-08-16 快照互聯(lián)網(wǎng)檔案館 2013-06-07 快照(因官網(wǎng) http://www.xinetd.org 早已不可訪問,所以只能在 互聯(lián)網(wǎng)檔案館 里找到 2000-08-16 ~ 2013-06-09 之間的網(wǎng)頁快照)

安裝

  • Manjaro Linux / Arch Linux
$ sudo pacman -S xinetd
  • Debian / Ubuntu
$ sudo apt update
$ sudo apt install xinetd
  • RHEL / CentOS
$ sudo yum update
$ sudo yum install xinetd
  • FreeBSD
$ sudo pkg update
$ sudo pkg install xinetd

配置

配置文件默認(rèn)位于 /etc/xinetd.d 目錄下,且安裝完會默認(rèn)創(chuàng)建一些常用的配置(默認(rèn)均為禁用狀態(tài):disable = yes

$ ls -lh /etc/xinetd.d
-rw-r--r-- 1 root root 306 Nov 14  2019 rlogin
-rw-r--r-- 1 root root 303 Nov 14  2019 rsh
-rw-r--r-- 1 root root 315 Aug  8 03:49 rsync
-rw-r--r-- 1 root root 205 Sep  5 17:34 sane
-rw-r--r-- 1 root root 253 Nov 13  2019 servers
-rw-r--r-- 1 root root 254 Nov 13  2019 services
-rw-r--r-- 1 root root 157 Nov 14  2019 talk
-rw-r--r-- 1 root root 160 Nov 14  2019 telnet
-rw-r--r-- 1 root root 158 Sep  6 23:32 tftp

針對我的訴求,創(chuàng)建配置文件

# cat >> /etc/xinetd.d/win10-gk41 <<EOF
service services
{
        flags           = IPv6
        disable         = no
        type            = UNLISTED
        socket_type     = stream
        protocol        = tcp
        user            = nobody
        wait            = no
        redirect        = 192.168.0.41 3389
        port            = 3389
}
EOF

該配置表示,監(jiān)聽本地網(wǎng)卡 IPv6地址3389 端口,然后轉(zhuǎn)發(fā)到 192.168.0.41:3389

然后重啟 xinetd 生效,在 微軟遠(yuǎn)程桌面 里通過訪問 manjaro-gk41.example.com 即可訪問到 gk41 上運(yùn)行的 Windows 10。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容