V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
cnta
V2EX  ›  Linux

socket 程序本地调通, server 部分放到服务器上本地 client 无法实现连接

  •  1
     
  •   cnta · 2017-03-23 20:54:07 +08:00 · 3176 次点击
    这是一个创建于 2591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    //serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1"); serv_addr.sin_addr.s_addr=inet_addr("118.89.xxx.xxx"); serv_addr.sin_port=htons(1235); connect(sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr));

    为什么设为 127.0.0.1 在本地能够成功运行,但是改为服务器 ip 地址后,将 server 部分程序放在(腾讯云)服务器上面运行 client 一直连接不上呢?服务器能够 ping 通,安全组设置为全部开放,然后防火墙也是关闭的,系统为 ubuntu server ,本地试了虚拟机 ubuntu 内、和 Windows Subsystem for Linux 都行, client 运行在虚拟机 ubuntu 和 Windows Subsystem for Linux 均无法连接上服务器,为什么呢?

    4 条回复    2017-03-23 21:45:01 +08:00
    cnta
        1
    cnta  
    OP
       2017-03-23 21:05:46 +08:00
    wevsty
        2
    wevsty  
       2017-03-23 21:29:03 +08:00   ❤️ 1
    有些云外网 IP 是在外网网关上的,所以 Server 直接 Bind 外网 IP 是不行的。
    Bind 0.0.0.0 应该就可以了。
    akira
        3
    akira  
       2017-03-23 21:33:27 +08:00
    telnet 服务器对应端口是否能链接
    cnta
        4
    cnta  
    OP
       2017-03-23 21:45:01 +08:00
    @wevsty 谢谢,通过你的回答解决了我的问题~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2887 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:02 · PVG 22:02 · LAX 07:02 · JFK 10:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.