腾讯轻量应用服务器 ifconfig 没有公网 IP - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
liuyulvv
V2EX    云计算

腾讯轻量应用服务器 ifconfig 没有公网 IP

  •  1
     
  •   liuyulvv 2021-07-09 21:25:13 +08:00 5488 次点击
    这是一个创建于 1554 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟以学生优惠购入一台腾讯轻量应用服务器,目前正在学习 Linux C++开发,今天在学习 socket 编程,代码也是很简单的代码:

    #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> #include <assert.h> #include <stdio.h> #include <string.h> static bool stop = false; static void handle_term(int sig) { stop = true; } int main(int argc, char *argv[]) { signal(SIGTERM, handle_term); if (argc <= 3) { printf("usage: %s ip_address port_number backlog\n", basename(argv[0])); return 1; } const char *ip = argv[1]; int port = atoi(argv[2]); int backlog = atoi(argv[3]); int sock = socket(AF_INET, SOCK_STREAM, 0); assert(sock >= 0); struct sockaddr_in address; bzero(&address, sizeof(address)); address.sin_family = AF_INET; inet_pton(AF_INET, ip, &address.sin_addr); address.sin_port = htons(port); int ret = bind(sock, (struct sockaddr *)&address, sizeof(address)); assert(ret != -1); ret = listen(sock, backlog); assert(ret != -1); while (!stop) { sleep(1); } close(sock); return 0; } 

    g++ -o main main.cpp后,终端运行./main 公网 IP 12345 5 ,然后就在bind后面 assert 退出了,bind 失败。确定代码没问题,我直接把可执行文件传到 Digitalocean 的机器上,运行程序,成功。

    纳闷了,然后两台机器 ifconfig,DO 的机器出现了公网 IP,腾讯的没出现公网 IP,只有内网的 IP 和 localhost,我就在腾讯上 ./main 内网 IP 12345 5,能运行!,DO 上 telnet 腾讯的公网 IP,成功?!!!

    还有这种操作?我在内网 IP 上 bind,结果给我“映射”到公网 IP 上了,这是咋做到的,为啥不让我 bind 公网的 IP 嘞

    23 条回复    2021-07-24 23:58:38 +08:00
    OysterQAQ
        1
    OysterQAQ  
       2021-07-09 21:29:46 +08:00   1
    大厂都这样 弹性 ip 随时分离添加
    westoy
        2
    westoy  
       2021-07-09 21:36:02 +08:00   1
    绑定 0.0.0.0
    Muninn
        3
    Muninn  
       2021-07-09 22:24:30 +08:00
    都这样
    phithon
        4
    phithon  
       2021-07-09 22:30:16 +08:00
    和轻量没关系,云主机都是这个样
    Tink
        5
    Tink  
    PRO
       2021-07-09 22:36:14 +08:00 via Android
    弹性吧
    dreamage
        6
    dreamage  
       2021-07-09 22:47:56 +08:00   1
    一对一 NAT
    baoshuo
        7
    baoshuo  
       2021-07-09 23:24:51 +08:00 via Android
    好多大厂这样,一般监听 0.0.0.0 即可。
    billlee
        8
    billlee  
       2021-07-10 02:15:09 +08:00
    云服务器的网络都是复杂的 SDN

    试试 arping, 你会发现这个内网接口还有 arp 代理
    no1xsyzy
        9
    no1xsyzy  
       2021-07-10 02:34:57 +08:00
    你想多了,你内网不 bind 直接 telnet 公网 IP 也会收到(控制台屏蔽除外)
    jedihy
        10
    jedihy  
       2021-07-10 03:56:43 +08:00
    大厂 SDN 都是这样的。你本机没有那个 IP 所以你是不可能直接 bind 上去的。bind wildcard 或者 external nic 的 IP 都行。
    mightofcode
        11
    mightofcode  
       2021-07-10 09:51:17 +08:00
    阿里的轻量也这样
    我记得以前不是这样的
    Xusually
        12
    Xusually  
       2021-07-10 10:08:39 +08:00 via iPhone
    直接 bind 0.0.0.0 即可
    mutoudaren
        13
    mutouaren  
       2021-07-10 12:24:01 +08:00
    我猜跟 docker 一个原理。你在 docker 容器里面也是只有内网 ip,但是如果在容器里面 bind 0.0.0.0 。然后 docker run 的时候指定端口绑定,也可以在外部通过访问 host 的 ip 来访问 docker 容器内部。

    所以云主机本身应该也就是一个高级的”docker 容器“
    opentrade
        14
    opentrade  
       2021-07-10 13:18:55 +08:00
    Aws EC2 里看到的也是内网 IP 和 127.0.0.1 。Vultr 的 VPS 看到的倒是公网 IP 。
    julyclyde
        15
    julyclyde  
       2021-07-10 17:03:06 +08:00   3
    @mutoudaren 现在的人认识计算机都是以 docker 为标准模型了嘛
    msaionyc
        16
    msaionyc  
       2021-07-10 18:26:10 +08:00   3
    @julyclyde 最后一句那个“也就是”让我笑了半天
    freecloud
        17
    freecloud  
       2021-07-10 18:54:55 +08:00
    用显示的内网 IP,试试。
    Foxkeh
        18
    Foxkeh  
       2021-07-10 20:26:18 +08:00
    同样的阿里云现在新购买的主机只能选择专有网络,ifconfig 也是这样了。
    根据阿里云官网文档解释这种更安全一些
    PeacePeach
        19
    PeacePeach  
       2021-07-11 09:23:37 +08:00 via iPhone
    @julyclyde
    @msaionyc 两位已 b
    adoal
        20
    adoal  
       2021-07-11 16:55:35 +08:00 via iPhone
    没听说过 NAT 吗
    lc7029
        21
    lc7029  
       2021-07-11 23:24:09 +08:00
    一对一 nat
    Jessica8821
        22
    Jessica8821  
       2021-07-23 11:36:47 +08:00
    腾讯云轻量新老用户同价,享终身续费同价,再赠一年顶级域名,大家可以咨询我哦:17602378821 (微信)
    opengps
        23
    opengps  
       2021-07-24 23:58:38 +08:00
    类似于 dmz 主机的全端口 nat 转发就理解了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5483 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 08:33 PVG 16:33 LAX 01:33 JFK 04:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86