python socket 在本地可以使用但是在服务器上面用外网IP加端口号链接不上


import socket
import threading
 
 
class WebServer():
    def __init__(self):
 
        tcp_server  = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
 
        tcp_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
 
        tcp_server.bind(("",6768))
 
        tcp_server.listen(1024)
 
        self.tcp_server = tcp_server
 
    def main(self):
 
        while True:
 
            new_socket,ip_port = self.tcp_server.accept()
            print(new_socket,ip_port)
            print("ip端口号: " , ip_port)
 
            sub_thread = threading.Thread(target=self.handle_client_request,args=(new_socket,))
 
            sub_thread.setDaemon(True)
 
            sub_thread.start()
 
    def handle_client_request(self,new_socke):
 
        while True:
 
            recv_data = new_socke.recv(1024)
 
            if len(recv_data) == 0:
                new_socke.close()
                return
 
            recv_data = recv_data.decode('utf-8')
            print(recv_data)
 
            if recv_data =="0001":
                break
 
 
if __name__ == '__main__':
    a =  WebServer()
    a.main()
 
 

img

img

你的外网IP 是整个区域上网的地址吧?
看你的描述,你的路由器要转NAT转发才能实现你的需求。
把需求告诉网络管理员,让网管设置一下