【发布时间】:2019-08-21 12:52:20
【问题描述】:
我有一个 FTP 服务器,我希望能够将其发送到我所在区域周围的个人 Windows 10 计算机(不同的 IP)以访问文件,为了访问它们,我需要允许端口通过防火墙。除了这样做,有什么方法可以让我的 Python 程序使用不需要绕过防火墙或完全绕过防火墙的其他端口?
Server.py
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import urllib.request
import mysql.connector
sqlpass = ""
version = "1.3"
def ftp_main():
mydb = mysql.connector.connect(
host="",
port="3306",
user="",
passwd=sqlpass,
database=""
)
mycursor = mydb.cursor()
mycursor.execute("SELECT Username, Password FROM FtpInfo")
myresult = mycursor.fetchall()
Username, Password = myresult[0]
print(Username + " " + Password)
external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8')
print(external_ip)
authorizer = DummyAuthorizer()
# Define a new user having full r/w permissions and a read-only
# anonymous user
authorizer.add_user(Username, Password, '.', perm='elradfmwMT')
authorizer.add_anonymous('.')
# Instantiate FTP handler class
handler = FTPHandler
handler.authorizer = authorizer
handler.masquerade_address = external_ip
handler.passive_ports = range(60000, 60999)
# Define a customized banner (string returned when client connects)
handler.banner = "FTP Server v" + version
address = ('', 1000)
server = FTPServer(address, handler)
# start ftp server
server.serve_forever()
ftp_main()
【问题讨论】:
-
@MartinPrikryl 这不是专门针对我的防火墙,但问题是“如何让 python 程序允许特定端口通过 Windows 防火墙?”这是一道编程题。
-
@MartinPrikryl 实际上,这真的很有帮助。请将此放在单独的答案中,以便我将其标记为正确。谢谢,(我可以使用python制作和执行批处理文件)
-
可以使用 os.system("netsh") 执行 netsh
-
感谢@Anonymous 这工作
标签: python windows ftp firewall windows-firewall