1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Podman常用命令總結(jié)

        共 15367字,需瀏覽 31分鐘

         ·

        2022-01-04 19:51

        Podman簡介

        什么是Podman?

        Podman 是一個開源的容器運行時項目,可在大多數(shù) Linux 平臺上使用。

        Podman 提供與 Docker 非常相似的功能。正如前面提到的那樣,它不需要在你的系統(tǒng)上運行任何守護進程,并且它也可以在沒有 root 權(quán)限的情況下運行。

        Podman 可以管理和運行任何符合 OCI(Open Container Initiative)規(guī)范的容器和容器鏡像。Podman 提供了一個與 Docker 兼容的命令行前端來管理 Docker 鏡像。

        Podman 官網(wǎng)地址:https://podman.io/

        Podman和Docker的主要區(qū)別是什么?
        • dockers在實現(xiàn)CRI的時候,它需要一個守護進程,其次需要以root運行,因此這也帶來了安全隱患。

        • podman不需要守護程序,也不需要root用戶運行,從邏輯架構(gòu)上,比docker更加合理。

        • 在docker的運行體系中,需要多個daemon才能調(diào)用到OCI的實現(xiàn)RunC。

        • 在容器管理的鏈路中,Docker Engine的實現(xiàn)就是dockerd

        • daemon,它在linux中需要以root運行,dockerd調(diào)用containerd,containerd調(diào)用containerd-shim,然后才能調(diào)用runC。顧名思義shim起的作用也就是“墊片”,避免父進程退出影響容器的運訓(xùn)

        • podman直接調(diào)用OCI,runtime(runC),通過common作為容器進程的管理工具,但不需要dockerd這種以root身份運行的守護進程。

        • 在podman體系中,有個稱之為common的守護進程,其運行路徑通常是/usr/libexec/podman/conmon,它是各個容器進程的父進程,每個容器各有一個,common的父則通常是1號進程。podman中的common其實相當(dāng)于docker體系中的containerd-shim。

        圖中所體現(xiàn)的事情是,podman不需要守護進程,而dorker需要守護進程。在這個圖的示意中,dorcker的containerd-shim與podman的common被歸在Container一層。

        Podman的使用與docker有什么區(qū)別?

        podman的定位也是與docker兼容,因此在使用上面盡量靠近docker。在使用方面,可以分成兩個方面來說,一是系統(tǒng)構(gòu)建者的角度,二是使用者的角度。

        在系統(tǒng)構(gòu)建者方面,用podman的默認(rèn)軟件,與docker的區(qū)別不大,只是在進程模型、進程關(guān)系方面有所區(qū)別。如果習(xí)慣了docker幾個關(guān)聯(lián)進程的調(diào)試方法,在podman中則需要適應(yīng)??梢酝ㄟ^pstree命令查看進程的樹狀結(jié)構(gòu)??傮w來看,podman比docker要簡單。由于podman比docker少了一層daemon,因此重啟的機制也就不同了。

        在使用者方面,podman與docker的命令基本兼容,都包括容器運行時(run/start/kill/ps/inspect),本地鏡像(images/rmi/build)、鏡像倉庫(login/pull/push)等幾個方面。因此podman的命令行工具與docker類似,比如構(gòu)建鏡像、啟停容器等。甚至可以通過alias docker=podman可以進行替換。因此,即便使用了podman,仍然可以使用docker.io作為鏡像倉庫,這也是兼容性最關(guān)鍵的部分。

        Podman常用命令

        容器
        podman?run?????????#創(chuàng)建并啟動容器??
        podman?start???????#啟動容器??
        podman?ps??????????#查看容器??
        podman?stop????????#終止容器??
        podman?restart?????#重啟容器??
        podman?attach??????#進入容器??
        podman?exec????????#進入容器??
        podman?export??????#導(dǎo)出容器??
        podman?import??????#導(dǎo)入容器快照??
        podman?rm??????????#刪除容器??
        podman?logs????????#查看日志??
        鏡像
        podman?search?????????????#檢索鏡像??
        docke?pull????????????????#獲取鏡像??
        podman?images?????????????#列出鏡像??
        podman?image?Is???????????#列出鏡像??
        podman?rmi????????????????#刪除鏡像??
        podman?image?rm???????????#刪除鏡像??
        podman?save???????????????#導(dǎo)出鏡像??
        podman?load???????????????#導(dǎo)入鏡像??
        podmanfile????????????????#定制鏡像(三個)??
        ????podman?build??????????????#構(gòu)建鏡像??
        ????podman?run??????????????#運行鏡像??
        ????podmanfile??????????????#常用指令(四個)??
        ????????COPY????????????????????#復(fù)制文件??
        ????????ADD?????????????????????#高級復(fù)制??
        ????????CMD?????????????????????#容器啟動命令??
        ????????ENV?????????????????????#環(huán)境變量??
        ????????EXPOSE??????????????????#暴露端口??

        部署Podman

        //安裝podman??
        [root@localhost?~]#?yum?-y?install?podman??
        ??
        //倉庫配置??
        [root@localhost?~]#?vim?/etc/containers/registries.conf??
        [registries.search]??
        registries?=?['registry.access.redhat.com',?'registry.redhat.io',?'docker.io']?//這個是查找,從這三個地方查找,如果只留一個,則只在一個源里查找??
        unqualified-search-registries?=?["registry.fedoraproject.org",?"registry.access.redhat.com",?"registry.centos.org",?"docker.io"]?//這里也要改為一個??
        ??
        [registries.insecure]??
        registries?=?[10.0.0.1]???//這里寫那些http的倉庫,比如harbor??
        ??
        //配置加速器??
        [registries.search]??
        registries?=?['https://l9h8fu9j.mirror.aliyuncs.com','docker.io']

        使用Podman

        使用 Podman 非常的簡單,Podman 的指令跟 Docker 大多數(shù)都是相同的。下面我們來看幾個常用的例子:

        運行一個容器
        [root@localhost?~]#?podman?run?-d?--name?httpd?docker.io/library/httpd??
        Trying?to?pull?docker.io/library/httpd...??
        Getting?image?source?signatures??
        Copying?blob?e5ae68f74026?done????
        Copying?blob?d3576f2b6317?done????
        Copying?blob?bc36ee1127ec?done????
        Copying?blob?f1aa5f54b226?done????
        Copying?blob?aa379c0cedc2?done????
        Copying?config?ea28e1b82f?done????
        Writing?manifest?to?image?destination??
        Storing?signatures??
        0492e405b9ecb05e6e6be1fec0ac1a8b6ba3ff949df259b45146037b5f355035??
        ??
        //查看鏡像??
        [root@localhost?~]#?podman?images??
        REPOSITORY??????????????????TAG??????IMAGE?ID???????CREATED???????SIZE??
        docker.io/library/httpd?????latest???ea28e1b82f31???11?days?ago???148?MB??
        列出運行的容器
        [root@localhost?~]#?podman?ps??
        CONTAINER?ID??IMAGE?????????????????????????????COMMAND???????????CREATED?????????????STATUS?????????????????PORTS??NAMES??
        0492e405b9ec??docker.io/library/httpd:latest????httpd-foreground??About?a?minute?ago??Up?About?a?minute?ago?????????httpd??

        注意:如果在ps命令中添加-a,Podman 將顯示所有容器。

        檢查正在運行的容器

        您可以“檢查”正在運行的容器的元數(shù)據(jù)和有關(guān)其自身的詳細(xì)信息。我們甚至可以使用 inspect 子命令查看分配給容器的 IP 地址。由于容器以無根模式運行,因此未分配 IP 地址,并且該值將在檢查的輸出中列為“無”。

        [root@localhost?~]#?podman?inspect?-l?|?grep?IPAddress\":???
        ????????????"SecondaryIPAddresses":?null,???
        ????????????"IPAddress":?"10.88.0.5",??
        ??
        [root@localhost?~]#?curl?10.88.0.5??

        It?works!

        ??

        注意:-l 是最新容器的便利參數(shù)。您還可以使用容器的 ID 代替 -l。

        查看一個運行中容器的日志
        選項??
        ????--latest????????#最近的??
        ??????
        [root@localhost?~]#?podman?logs?--latest??
        AH00558:?httpd:?Could?not?reliably?determine?the?server's?fully?qualified?domain?name,?using?10.88.0.5.?Set?the?'ServerName'?directive?globally?to?suppress?this?message??
        AH00558:?httpd:?Could?not?reliably?determine?the?server'
        s?fully?qualified?domain?name,?using?10.88.0.5.?Set?the?'ServerName'?directive?globally?to?suppress?this?message??
        [Mon?Dec?13?15:17:53.690844?2021]?[mpm_event:notice]?[pid?1:tid?140665160166720]?AH00489:?Apache/2.4.51?(Unix)?configured?--?resuming?normal?operations??
        [Mon?Dec?13?15:17:53.690946?2021]?[core:notice]?[pid?1:tid?140665160166720]?AH00094:?Command?line:?'httpd?-D?FOREGROUND'??
        10.88.0.1?-?-?[13/Dec/2021:15:19:48?+0000]?"GET?/?HTTP/1.1"?200?45??
        10.88.0.1?-?-?[13/Dec/2021:15:20:47?+0000]?"GET?/?HTTP/1.1"?200?45??

        查看一個運行容器中的進程資源使用情況

        可以使用top觀察容器中的 nginx pid

        語法:

        ????podman?top?????
        [root@localhost?~]#?podman?top?httpd??
        USER???????PID???PPID???%CPU????ELAPSED????????????TTY???TIME???COMMAND??
        root???????1?????0??????0.000???15m38.599711321s?????????0s?????httpd?-DFOREGROUND???
        www-data???7?????1??????0.000???15m38.599783256s?????????0s?????httpd?-DFOREGROUND???
        www-data???8?????1??????0.000???15m38.599845342s?????????0s?????httpd?-DFOREGROUND???
        www-data???9?????1??????0.000???15m38.599880444s?????????0s?????httpd?-DFOREGROUND??

        停止一個運行中的容器

        [root@localhost?~]#?podman?stop?--latest??
        2f3edf712621d3a41e03fa8c7f6a5cdba56fbbad43a7a59ede26cc88f31006c4??
        [root@localhost?~]#?podman?ps??
        CONTAINER?ID??IMAGE??COMMAND??CREATED??STATUS??PORTS??NAMES??
        刪除一個容器
        [root@localhost?~]#?podman?rm?--latest??
        2f3edf712621d3a41e03fa8c7f6a5cdba56fbbad43a7a59ede26cc88f31006c4??
        [root@localhost?~]#?podman?ps?-a??
        CONTAINER?ID??IMAGE??COMMAND??CREATED??STATUS??PORTS??NAMES??

        以上這些特性基本上都和 Docker 一樣,Podman 除了兼容這些特性外,還支持了一些新的特性

        上傳鏡像

        例如,如果我們想在 docker.io 上分享我們新建的 Nginx 容器鏡像,這很容易。首先登錄碼頭:

        [root@localhost?nginx]#?tree???
        .??
        ├──?Dockerfile??
        └──?files??
        ????└──?nginx-1.20.1.tar.gz??
        ??
        [root@localhost?nginx]#?cat?Dockerfile???
        FROM?docker.io/library/centos??
        ??
        ENV?PATH?/usr/local/nginx/sbin:$PATH??
        ADD?files/nginx-1.20.1.tar.gz?/usr/src??
        RUN?useradd?-r?-M?-s?/sbin/nologin?nginx?&&?\??
        ????yum?-y?install?pcre-devel?openssl?openssl-devel?gd-devel?gcc?gcc-c++?make?&&?\??
        ????mkdir?-p?/var/log/nginx?&&?\??
        ????cd?/usr/src/nginx-1.20.1?&&?\??
        ????./configure?\??
        ????--prefix=/usr/local/nginx?\??
        ????--user=nginx?\??
        ????--group=nginx?\??
        ????--with-debug?\??
        ????--with-http_ssl_module?\??
        ????--with-http_realip_module?\??
        ????--with-http_image_filter_module?\??
        ????--with-http_gunzip_module?\??
        ????--with-http_gzip_static_module?\??
        ????--with-http_stub_status_module?\??
        ????--http-log-path=/var/log/nginx/access.log?\??
        ????--error-log-path=/var/log/nginx/error.log?&&?\??
        ??make?&&?make?install??
        ??
        CMD?["nginx","-g","daemon?off"]??
        [root@localhost?nginx]#?podman?build?-t?nginx?.??
        //?修改鏡像名??
        ?[root@localhost?~]#?podman?tag?docker.io/library/nginx:latest?docker.io/1314444/test:latest??
        ??
        //?登錄并上傳鏡像??
        [root@localhost?~]#?podman?login?docker.io?//?需要告訴其要登錄到docker倉庫??
        [root@localhost?~]#?podman?login?docker.io??
        Username:?1314444????????#賬戶??
        Password:?********????????#密碼??
        Login?Succeeded!??
        ??
        [root@localhost?nginx]#?podman?push?docker.io/1314444/test:latest??//上傳鏡像??
        Getting?image?source?signatures??
        Copying?blob?38c40d6c2c85?done??
        Copying?blob?fee76a531659?done??
        Copying?blob?c2adabaecedb?done??
        Copying?config?7f3589c0b8?done??
        Writing?manifest?to?image?destination??
        Copying?config?7f3589c0b8?done??
        Writing?manifest?to?image?destination??
        Storing?signatures??
        ??
        ??
        //請注意,我們將四層推送到我們的注冊表,現(xiàn)在可供其他人共享??焖贋g覽一下:??
        [root@localhost?~]#?podman?inspect?1314444/test:nginx??
        //輸出:??
        [??
        ????{??
        ????????"Id":?"7f3589c0b8849a9e1ff52ceb0fcea2390e2731db9d1a7358c2f5fad216a48263",??
        ????????"Digest":?"sha256:7822b5ba4c2eaabdd0ff3812277cfafa8a25527d1e234be028ed381a43ad5498",??
        ????????"RepoTags":?[??
        ????????????"docker.io/1314444/test:nginx",??
        ????????......??

        總而言之,Podman 使查找、運行、構(gòu)建和共享容器變得容易。

        配置別名

        如果習(xí)慣了使用 Docker 命令,可以直接給 Podman 配置一個別名來實現(xiàn)無縫轉(zhuǎn)移。你只需要在 .bashrc 下加入以下行內(nèi)容即可:

        [root@localhost?~]#?echo?"alias?docker=podman"?>>?.bashrc??
        source?.bashrc??
        [root@localhost?~]#?alias??
        alias?cp='cp?-i'??
        alias?docker='podman'??
        .......??
        用戶操作

        在允許沒有root特權(quán)的用戶運行Podman之前,管理員必須安裝或構(gòu)建Podman并完成以下配置。

        cgroup V2Linux內(nèi)核功能允許用戶限制普通用戶容器可以使用的資源,如果使用cgroupV2啟用了運行Podman的Linux發(fā)行版,則可能需要更改默認(rèn)的OCI運行時。某些較舊的版本runc不適用于cgroupV2,必須切換到備用OCI運行時crun。

        [root@localhost?~]#?yum?-y?install?crun?????//centos8系統(tǒng)自帶??
        ??
        [root@localhost?~]#?vi?/usr/share/containers/containers.conf???
        ????446?#?Default?OCI?runtime??
        ????447?#???
        ????448?runtime?=?"crun"??????//取消注釋并將runc改為crun??
        ??
        [root@localhost?~]#?podman?run?-d?--name?web?-p?80:80?docker.io/library/nginx??
        c8664d2e43c872e1e5219f82d41f63048ed3a5ed4fb6259c225a14d6c243677f??
        ??
        [root@localhost?~]#?podman?inspect?web?|?grep?crun??
        ????????"OCIRuntime":?"crun",??
        ????????????"crun",??

        安裝slirp4netns和fuse-overlayfs

        在普通用戶環(huán)境中使用Podman時,建議使用fuse-overlayfs而不是VFS文件系統(tǒng),至少需要版本0.7.6?,F(xiàn)在新版本默認(rèn)就是了。

        [root@localhost?~]#?yum?-y?install?slirp4netns??
        ??
        [root@localhost?~]#?yum?-y?install?fuse-overlayfs??
        [root@localhost?~]#?vi?/etc/containers/storage.conf??
        77?mount_program?=?"/usr/bin/fuse-overlayfs"?????//取消注釋??

        /etc/subuid和/etc/subgid配置

        Podman要求運行它的用戶在/etc/subuid和/etc/subgid文件中列出一系列UID,shadow-utils或newuid包提供這些文件

        [root@localhost?~]#?yum?-y?install?shadow-utils??

        可以在/etc/subuid和/etc/subgid查看,每個用戶的值必須唯一且沒有任何重疊。

        [root@localhost?~]#?useradd?zz??
        [root@localhost?~]#?cat?/etc/subuid??
        zz:100000:65536??
        [root@localhost?~]#?cat?/etc/subgid??
        zz:100000:65536??
        ??
        //?啟動非特權(quán)ping???
        [root@localhost?~]#?sysctl?-w?"net.ipv4.ping_group_range=0?200000"?//大于100000這個就表示tom可以操作podman??
        net.ipv4.ping_group_range?=?0?200000??

        這個文件的格式是 USERNAME:UID:RANGE

        • 中/etc/passwd或輸出中列出的用戶名getpwent。

        • 為用戶分配的初始 UID。

        • 為用戶分配的 UID 范圍的大小。

        該usermod程序可用于為用戶分配 UID 和 GID,而不是直接更新文件。

        [root@localhost?~]#?usermod?--add-subuids?200000-201000?--add-subgids?200000-201000?hh??
        grep?hh?/etc/subuid?/etc/subgid??
        /etc/subuid:hh:200000:1001??
        /etc/subgid:hh:200000:1001??

        用戶配置文件

        三個主要的配置文件是container.conf、storage.conf和registries.conf。用戶可以根據(jù)需要修改這些文件。

        • container.conf
        //?用戶配置文件??
        [root@localhost?~]#?cat?/usr/share/containers/containers.conf??
        [root@localhost?~]#?cat?/etc/containers/containers.conf??
        [root@localhost?~]#?cat?~/.config/containers/containers.conf??//優(yōu)先級最高??

        如果它們以該順序存在。每個文件都可以覆蓋特定字段的前一個文件。

        • 配置storage.conf文件
        1./etc/containers/storage.conf??
        2.$HOME/.config/containers/storage.conf??

        在普通用戶中/etc/containers/storage.conf的一些字段將被忽略

        [root@localhost?~]#??vi?/etc/containers/storage.conf??
        [storage]??
        ??
        #?Default?Storage?Driver,?Must?be?set?for?proper?operation.??
        driver?=?"overlay"????????#此處改為overlay??
        .......??
        mount_program?=?"/usr/bin/fuse-overlayfs"????????#取消注釋??
        ??
        [root@localhost?~]# sysctl user.max_user_namespaces=15000??#如果版本為8以下,則需要做以下操作:??

        在普通用戶中這些字段默認(rèn)

        graphroot="$HOME/.local/share/containers/storage"??
        runroot="$XDG_RUNTIME_DIR/containers"??
        • registries.conf

        配置按此順序讀入,這些文件不是默認(rèn)創(chuàng)建的,可以從/usr/share/containers或復(fù)制文件/etc/containers并進行修改。

        1./etc/containers/registries.conf??
        2./etc/containers/registries.d/*??
        3.HOME/.config/containers/registries.conf??
        授權(quán)文件

        此文件里面寫了docker賬號的密碼,以加密方式顯示

        [root@localhost?~]#?podman?login??
        Username:?1314444??
        Password:???
        Login?Succeeded!??
        [root@localhost?~]#?cat?/run/user/0/containers/auth.json???
        {??
        ????????"auths":?{??
        ????????????????"registry.fedoraproject.org":?{??
        ????????????????????????"auth":?"MTMxNDQ0NDpIMjAxNy0xOA=="??
        ????????????????}??
        ????????}??
        }??

        普通用戶是無法看見root用戶的鏡像的

        //root用戶??
        [root@localhost?~]#?podman?images??
        REPOSITORY??????????????????TAG??????IMAGE?ID???????CREATED???????SIZE??
        docker.io/library/httpd?????latest???ea28e1b82f31???11?days?ago???146?MB??
        ??
        //普通用戶??
        [root@localhost?~]#?su?-?zz??
        [zz@localhost?~]$?podman?images??
        REPOSITORY??TAG?????????IMAGE?ID????CREATED?????SIZE??

        • 容器與root用戶一起運行,則root容器中的用戶實際上就是主機上的用戶。

        • UID GID是在/etc/subuid和/etc/subgid等中用戶映射中指定的第一個UID GID。

        • 如果普通用戶的身份從主機目錄掛載到容器中,并在該目錄中以根用戶身份創(chuàng)建文件,則會看到它實際上是你的用戶在主機上擁有的。

        使用卷
        [root@localhost?~]#?su?-?zz??
        [zz@localhost?~]$?pwd??
        /home/zz??
        [zz@localhost?~]$?mkdir?/home/zz/data??
        ??
        [zz@localhost?~]$?podman?run?-it?-v?"$(pwd)"/data:/data?docker.io/library/busybox?/bin/sh??
        Trying?to?pull?docker.io/library/busybox:latest...??
        Getting?image?source?signatures??
        Copying?blob?3cb635b06aa2?done????
        Copying?config?ffe9d497c3?done????
        Writing?manifest?to?image?destination??
        Storing?signatures??
        /?#?ls??
        bin???data??dev???etc???home??proc??root??run???sys???tmp???usr???var??
        /?#?cd?data/??
        /data?#?ls??
        /data?#?touch?123??
        /data?#?ls?-l??
        total?0??
        -rw-r--r--????1?root?????root?????????????0?Dec?13?00:17?123??

        在主機上查看
        [zz@localhost?~]$?ll?data/??
        總用量?0??
        -rw-r--r--?1?zz?zz?0?12月?13?00:17?123??
        ??
        //寫入文件??
        [zz@localhost?~]$?echo?"hell?world"?>>?123??
        [zz@localhost?~]$?cat?123??
        hell?world??

        容器里查看
        /data?#?cat?123??
        hell?world??
        ??
        //我們可以發(fā)現(xiàn)在容器里面的文件的屬主和屬組都屬于root,那么如何才能讓其屬于tom用戶呢?下面告訴你答案??
        /data?#?ls?-l??
        total?4??
        -rw-rw-r--????1?root?????root????????????12?Dec?13?00:20?123??
        ??
        //只要在運行容器的時候加上一個--userns=keep-id即可。??
        [zz@localhost?~]$?podman?run?-it?--name?test?-v?"$(pwd)"/data:/data?--userns=keep-id?docker.io/library/busybox?/bin/sh??
        ~?$?cd?data/??
        /data?$?ls?-l??
        total?4??
        -rw-r--r--????1?zz???????zz??????????????11?Dec?13?00:21?123??

        使用普通用戶映射容器端口時會報“ permission denied”的錯誤

        [zz@localhost?~]$?podman?run??-d?-p?80:80?httpd??
        Error:?rootlessport?cannot?expose?privileged?port?80,?you?can?add?'net.ipv4.ip_unprivileged_port_start=80'?to?/etc/sysctl.conf?(currently?1024),?or?choose?a?larger?port?number?(>=?1024):?listen?tcp?0.0.0.0:80:?bind:?permission?denied??

        普通用戶可以映射>= 1024的端口

        [zz@localhost?~]$?podman?run??-d?-p?1024:80?httpd??
        58613a6bdc70d4d4f9f624583f795a62a610596d166f0873bdff8fb26aa15092??
        [zz@localhost?~]$?ss?-anlt??
        State???????Recv-Q??????Send-Q???????????Local?Address:Port???????????Peer?Address:Port??????Process????????
        LISTEN??????0???????????128????????????????????0.0.0.0:22??????????????????0.0.0.0:*????????????????????????
        LISTEN??????0???????????128??????????????????????????*:1024??????????????????????*:*????????????????????????
        LISTEN??????0???????????128???????????????????????[::]:22?????????????????????[::]:*??

        配置echo ‘net.ipv4.ip_unprivileged_port_start=80’ >> /etc/sysctl.conf

        后可以映射大于等于80的端口

        [root@localhost?~]#?echo??'net.ipv4.ip_unprivileged_port_start=80'??>>?/etc/sysctl.conf??
        [root@localhost?~]#?sysctl?-p??
        net.ipv4.ip_unprivileged_port_start?=?80??
        ??
        [zz@localhost?~]$?podman?run?-d?-p?80:80?httpd??
        1215455a0c300d78e7bf6afaefc9873f818c6b0f26affeee4e2bc17954e72d8e??
        [zz@localhost?~]$?ss?-anlt??
        State???????Recv-Q??????Send-Q???????????Local?Address:Port???????????Peer?Address:Port??????Process????????
        LISTEN??????0???????????128????????????????????0.0.0.0:22??????????????????0.0.0.0:*????????????????????????
        LISTEN??????0???????????128??????????????????????????*:1024??????????????????????*:*????????????????????????
        LISTEN??????0???????????128??????????????????????????*:80????????????????????????*:*????????????????????????
        LISTEN??????0???????????128???????????????????????[::]:22?????????????????????[::]:*??

        鏈接:https://blog.csdn.net/qq_48289488/article/details/121905018

        文章轉(zhuǎn)載:SegmentFault
        (版權(quán)歸原作者所有,侵刪)


        點擊下方“閱讀原文”查看更多

        瀏覽 83
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产精品51麻豆cm传媒| 国产精品不卡| 亚洲欧美婷婷五月色综合| 影音先锋av在线资源| 国产成人无码区亚洲A片356p| 九九成人| 91中文字幕在线观看| 国产三级片视频在线观看| 国产精品视频在线免费观看| 在线免费观看一区|