मैं अस्थायी रूप से FTP सर्वर कैसे चला सकता हूं?


48

उबंटू की दुनिया में, ऐसा लगता है कि आप या तो हमेशा एफ़टीपी सर्वर चलाते हैं या आप कभी नहीं करते हैं। शायद मैं पहला नेटवर्क विश्लेषक हूं, जिसे उबंटू का उपयोग करके सिस्को, चेकपॉइंट या नोकिया छवि को फ्लैश करने की आवश्यकता है ... मुझे शायद 5 मिनट के लिए एफ़टीपी सर्वर की आवश्यकता है, इससे अधिक नहीं।

मैं एक नंगे-हड्डियों, उपयोगकर्ता द्वारा शुरू किए गए एफ़टीपी सर्वर की तलाश कर रहा हूं। मैं समझता हूं कि यह सूडो के साथ चलने की संभावना है। यह ठीक है - लेकिन मैं इसे एक सामान्य कार्यक्रम की तरह शुरू / रोकना चाहता हूं।

विंडोज प्लेटफॉर्म पर, इस तरह के उपकरण एक दर्जन से अधिक हैं - मैंने सालों से 3CDaem का उपयोग किया है और हाल ही में CoreFTP पाया है। दोनों ही बेहतरीन हैं। आप एक उपयोगकर्ता को कॉन्फ़िगर करते हैं, इसे एक निर्देशिका में इंगित करते हैं, फिर "प्रारंभ" बटन दबाएं। कुछ मिनट बाद, आप आम तौर पर कर रहे हैं और आप "बंद करो" बटन मारा। काम हो गया।

ऐसे उपकरण उबंटू में मौजूद नहीं हैं। मुझे एक Google कोड प्रोजेक्ट मिला, जो एक TFTP उदाहरण को यथोचित रूप से बनाता है (यह मानते हुए कि यह अभी भी चलता है - मैंने लगभग एक वर्ष में इसका उपयोग नहीं किया है और अजगर आगे बढ़ गया है), लेकिन FTP के बारे में कैसे? वहाँ कुछ भी?


2
बहुत बुरा मैं JetFTP खत्म करने के लिए समय नहीं है। यह वही करता है जो आप वर्णन करते हैं, और यह रूट विशेषाधिकारों के बिना चल सकता है (आपको निश्चित रूप से एक पोर्ट> 1024 का उपयोग करना होगा)। यह बिना किसी कॉन्फ़िगरेशन के और अच्छे GUI के साथ बॉक्स से बाहर चलेगा। यह कैसा होगा इसका अंदाजा लगाने के लिए , JetHTTP की जाँच करें , जो डिज़ाइन और इंटरफ़ेस में समान है।
नाथन उस्मान

धन्यवाद जॉर्ज, मैं यह भी जाँच करूँगा। शायद दोनों में से सबसे अच्छा संयुक्त हो सकता है। मेरे और अजगर के लिए शुरुआती दिन हालांकि, इसलिए मुझे शक है कि मैं वहाँ बहुत मदद करूँगा!
स्कैन्स

जवाबों:


52

आप एक FTP सर्वर को pyftpdlib का उपयोग करके एक दो तीन के रूप में आसान हो सकते हैं :

  1. पाइप के साथ स्थापित करें pip install --user pyftpdlib
  2. के साथ चलाएं python -m pyftpdlib, -wयदि आप लिखना चाहते हैं तो प्रवेश भी जोड़ें।
  3. कोई तीन कदम नहीं है :)

अब आपके पास एक ftp सर्वर है जिसे आप अपने होम डायरेक्टरी को गुमनाम रूप से साझा करने के लिए लॉग इन कर सकते हैं। यह मॉड्यूल के परीक्षण के रूप में अधिक माना जाता है, लेकिन यह वही करता है जो यह टिन पर कहता है।

यह आदेश:

python -m pyftpdlib --directory=FTP --port=2121 --write

बिना रूट विशेषाधिकारों के, पोर्ट 2121 पर सेवा प्रदान करेगा और गुमनाम उपयोगकर्ताओं के लिए अनुदान लिखेगा। यह FTPआपके घर के बजाय वर्तमान कामकाजी निर्देशिका में निर्देशिका का उपयोग करेगा । python ftpserver.py --helpसभी विकल्पों के बारे में जानकारी प्राप्त करने के लिए टाइप करें।

  • इस पर लॉग इन करें anonymous@localhost:2121/

वैकल्पिक शब्द

कृपया ध्यान दें कि यह सॉफ्टवेयर एमआईटी लाइसेंस की शर्तों के तहत जारी किया गया है , जिसका अर्थ है कि आप मूल रूप से कभी भी आप इसके साथ कृपया कर सकते हैं। लाइसेंस पाठ पढ़ें, यह केवल कुछ पंक्तियाँ हैं, और अपने अधिकारों को जानें।


अब, यह स्क्रिप्ट उपयोगकर्ता नाम और पासवर्ड का समर्थन नहीं करती है क्योंकि यह स्टैंड-अलोन कार्यक्षमता (सुरक्षा कारणों से मैं कल्पना करता हूं) के भाग के रूप में है।

इसलिए मैंने वह सुविधा जोड़ी है:

अब आपके पास मेरे द्वारा बताए गए सभी विकल्पों के अलावा, कमांड लाइन पैरामीटर हैं

--username=USERNAMEऔर --password=PASSWORD:

python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j

फिर से, --helpउन सभी को देखने के लिए उपयोग करें।

यह जितना आसान हो जाए उतना आसान होना चाहिए।


मैंने इसके लिए एक छोटी सी गिनी भी लिखी है:

वैकल्पिक शब्द

  • इसे यहां डाउनलोड करें (संशोधित 6 पर अद्यतन)

    मुझे खेद है कि यह 3999 पंक्तियों का है, लेकिन यह सब कुछ करेगा जो मूल करता है। और मैं यह सब एक फाइल में रखना चाहता था। जब यह बिना किसी पैरामीटर के शुरू किया जाता है (यानी इसे निष्पादन योग्य बनाते हैं और इसे डबल क्लिक करते हैं, या इसके लिए एक लांचर बनाते हैं ), तो यह आपके सर्वर को कॉन्फ़िगर करने के लिए आपके लिए थोड़ा सा गिनी शुरू करता है। आप अभी भी इसे अजगर मॉड्यूल के रूप में आयात कर सकते हैं या उपरोक्त कमांड लाइन फू का उपयोग कर सकते हैं।

    ज्ञात पहलु:

    • मैंने पोर्ट 2121 के अलावा किसी भी चीज़ से परेशान नहीं किया है। यह सरल होना चाहिए, पोर्ट को कॉन्फ़िगर करने योग्य बनाने के लिए जटिल त्रुटि से निपटने की आवश्यकता होती है जो मैं नहीं चाहता कि उपयोगकर्ता परेशान हो। 2121 को हमेशा ठीक काम करना चाहिए।

    • यह आपको असुरक्षित चेतावनी के उपयोग के बारे में कमांड लाइन की तरह, चेतावनी नहीं देगा। यानी पासवर्ड या ऐसा कुछ सेट नहीं करना।


संपादित करें: के बाद से एपीआई pyftpdlibऔर ftpserver.pyबदल (और ubuntu pastebin लिंक चले गए हैं); उपरोक्त पोस्ट में से अधिकांश अब काम नहीं करता है। (2014) संस्करण के लिए pyftpdlib, इस स्क्रिप्ट ( ftpserver-cli.py) को ऊपर के समान प्राप्त करने के लिए उपयोग करें :

#!/usr/bin/env python
# ftpserver-cli.py
import sys
sys.path.append("/path/to/pyftpdlib-svn") # enter your proper path here
import argparse

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

def processCmdLineOptions():
  global optparser
  optparser = argparse.ArgumentParser(description="ftpserver-cli",
              formatter_class=argparse.RawDescriptionHelpFormatter)
  optparser.add_argument('-u', '--username', action='store', type=str,
      default="user", help="username")
  optparser.add_argument('-p', '--password', action='store', type=str,
      default="12345", help="password")
  optparser.add_argument('-t', '--port', action='store', type=int,
      default="21", help="port")
  optparser.add_argument('-d', '--directory', action='store', type=str,
      default="/home/stefano/Projekte/", help="port")
  optargs = optparser.parse_args(sys.argv[1:]) #(sys.argv)
  return optargs


optargs = processCmdLineOptions()

print("Using: user: %s pass: %s port: %d dir: %s" % (optargs.username, optargs.password, optargs.port, optargs.directory))

authorizer = DummyAuthorizer()
authorizer.add_user(optargs.username, optargs.password, optargs.directory, perm="elradfmw")
#authorizer.add_anonymous("/home/nobody")

handler = FTPHandler
handler.authorizer = authorizer

server = FTPServer(("127.0.0.1", optargs.port), handler)
server.serve_forever()

के साथ बुलाना:

$ sudo python ftpserver-cli.py --directory=/tmp/srvtest
Using: user: user pass: 12345 port: 21 dir: /tmp/srvtest
[I 14-03-02 21:40:57] >>> starting FTP server on 127.0.0.1:21, pid=19286 <<<
...

यह एक शानदार मॉड्यूल की तरह दिखता है - जब से मैं अजगर को सीखने की कोशिश कर रहा हूं, ऐसा लगता है कि यह एक जीयूआई के निर्माण के लिए एक शानदार शुरुआती बिंदु है ... मुझे डर है कि मैं इसे उत्तर के रूप में चिह्नित नहीं कर रहा हूं (हालांकि मैं 'ने इसे उकेर दिया) इस उम्मीद में कि कोई ऐसा उपकरण जानता है जो पहले से ही जीयूआई आधारित है। हालांकि इस पर सिर के लिए धन्यवाद और संशोधित संस्करण के लिए धन्यवाद।
१३

धन्यवाद :-) मैं हार नहीं मानूंगा, अब इसके लिए GUI की प्रोग्रामिंग करूंगा। : पी
Stefano Palazzo

1
धन्यवाद स्टीफनो! मैंने कभी उम्मीद नहीं की थी कि! यह बहुत अच्छा है - न केवल आज रात (आज रात) बाहर निकलने की कोशिश करने के लिए एक जीयूआई, बल्कि एक शिक्षण मार्गदर्शिका का एक सा भी। बहुत धन्यवाद!
9

5
paste.ubuntu.com/542726 और paste.ubuntu.com/542852 मृत हैं, दुर्भाग्य से ... भी, ftpserver.py बदल गया है, और जाहिर है उपरोक्त पोस्ट अब और नहीं रखती है (अंतिम स्टैंडअलोन संशोधन r1116 लगता है , इसके साथ अलग )। मैंने एक नई स्क्रिप्ट के साथ पोस्ट का संपादन किया है (सहकर्मी समीक्षा तक अदृश्य रहेगा)
sadaau

1
सिर्फ noob के लिए, उपरोक्त स्क्रिप्ट का उपयोग करने के लिए आपको "pyftpdlib" लाइब्रेरी स्थापित करने की आवश्यकता होगी, इसे चलाने के लिए ... "sudo apt-get install python-pip" और फिर "pip install pythpdlib" ... और आप सब सेट!
डी। सन

1
  • आप शुद्ध-फुटपाथ का उपयोग कर सकते हैं शुद्ध-एफपीडी स्थापित करें

  • यदि आपके पास ssh सर्वर है तो आप scp का उपयोग कर सकते हैं ।


3
शुरुआती 5 मिनट में एक शुद्ध-एफ़टीपी सर्वर स्थापित कर सकते हैं। यह पैकेज को स्थापित करने के रूप में सरल हो सकता है, "शुद्ध-एफडीपी और" टाइप कर रहा है ... और यह सब है। आपके पास पहले से ही एक रनिंग सर्वर है, और क्लाइंट कनेक्ट करना शुरू कर सकते हैं।
hhlp

1
हां, मैं सराहना करता हूं कि शुद्ध आसान है, विशेष रूप से शुद्ध-व्यवस्थापक गिनी पैकेज के साथ - मैं इसे अपने स्थायी एफ़टीपी सर्वर के लिए उपयोग करता हूं। हालांकि, PureFTP के साथ, आप एफ़टीपी / हमेशा / चल रहे हैं, जो एक लैपटॉप के साथ एक सुरक्षा जोखिम है जो वाईफ़ाई के माध्यम से जोड़ता है। मैं अपने फ़ायरवॉल को चालू करने के लिए याद रखना नहीं चाहता और इसके (शायद छोटे) संसाधनों की चिंता करता हूँ। मुझे डर है कि आमतौर पर एक विकल्प नहीं है, हालांकि कुछ डिवाइस बेहतर हो रहे हैं - मुझे लगता है कि नवीनतम F5 छवियां scp का उपयोग करती हैं, जैसा कि इन दिनों सिस्को के कॉल मैनेजर करते हैं।
१०

2
मुझे नहीं लगता कि पैकेज स्थापित करने के बाद आपको PureFTP डेमॉन लॉन्च करने की आवश्यकता है। (मुझे लगा कि यह postinstपैकेज में स्क्रिप्ट द्वारा शुरू किया जाना चाहिए था ।)
नाथन उस्मान

0

उन लोगों के लिए जो राउटर से फ़ाइलों को कॉपी करते हैं और आप इस टूल को आज़माना चाहते हैं: tftpgui

इसने मेरे लिए काम किया और कॉन्फ़िगर करना बहुत आसान है। यह एक पायथन लिपि भी है, लेकिन यह ftp के बजाय tftp करता है। आपको बस इतना करना है कि अजगर स्थापित करें और स्क्रिप्ट डाउनलोड करें

केवल एक ही चीज़ ध्यान रखना चाहिए कि उबुन्टु Phython2 को डिफॉल्ट करता है इसलिए स्क्रिप्ट शुरू करने का सबसे अच्छा तरीका है:

sudo python3 ./tftpgui.py

फिर आप इसे GUI में कॉन्फ़िगर कर सकते हैं। जब आप कर रहे हैं आप बाहर निकलें प्रेस और वह यह है।

बो


2
धन्यवाद बो - मैंने पहले ही अपने प्रश्न में उस उपयोगी उपकरण का उल्लेख कर दिया था। हालाँकि, मैं एफ़टीपी के लिए TFTPgui जैसा कुछ चाहता था, जो तब तक मौजूद नहीं था जब तक स्टेफानो ने अपने अजगर गुई को नहीं मारा।
स्कैनेन

अजगर ftplib बजाय ठीक काम करता है और स्क्रिप्ट के लिए बहुत आसान है अगर बहुत सारे उपकरणों (1k +) के साथ काम कर रहा है
lxx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.