Linux upload file http

Securely transfer files between two hosts using HTTPS in Linux

Table of Contents

How to configure apache http server to transfer files? Steps to configure apache HTTP server over TLS/SSL to transfer files. How to configure Apache server using TLS/SSL to upload and transfer file using curl. How to transfer files over https? How to upload file using curl to an HTTPS server. How to configure HTTP server using LIMIT to allow download and upload of a file or directory using curl in Linux.

Earlier I had written an article with 5 different commands to securely transfer files between multiple hosts. Now you can consider HTTPS also as one of the possible options to securely transfer files (upload and download) between multiple hosts over the network.

In this article I will share the steps to configure an apache HTTP server using TLS/SSL and then transfer file to HTTPS server using curl (uploading a file). I am using CentOS 7.4 to demonstrate the steps from this article. I will configure a very basic HTTP server with not much customization as Apache can be very complex if we enter into using all the features. But since we are concentrating on configuring an HTTPS server to upload and download a file (transfer a file), we will configure a basic HTTPS server.

Install Apache

The very first thing we have to do is install the apache rpm before we start configuring our web server.

Next we will create some dummy file and directory and publish it on our webserver.

I am creating an alias /web which will redirect to /var/www/html/secret . Also we have defined directive. The directive limits the scope of the enclosed directives by URL. It is similar to the directive, and starts a subsection which is terminated with a directive. sections are processed in the order they appear in the configuration file, after the sections and .htaccess files are read, and after the sections.

The purpose of the directive is to restrict the effect of the access controls to the nominated HTTP methods. For all other methods, the access restrictions that are enclosed in the bracket will have no effect.

Next restart the httpd services to make the changes affect.

Check the service status.

Enable the httpd service to make it reboot persistent.

Источник

Передача файлов по сети Linux

Мне, как владельцу персонального компьютера и ноутбука часто приходится передавать файлы с одного устройства на другое. Внешние жесткие диски и флешки использовать не всегда удобно, они актуальны для больших файлов, где важна скорость записи, а вот для маленьких файлов и документов хочется чего-нибудь попроще.

Если оба устройства подсоединены к одной сети идеальным вариантом будет передача файлов по сети linux. Здесь мы получаем большую скорость, и удобство использования — не нужно искать флешку или USB провод, достаточно прозрачно скопировать файл в нужную папку и он уже на целевом устройстве. Сегодня мы рассмотрим основные способы передачи файлов по сети между компьютерами.

Читайте также:  Файлы с рабочего стола windows 10 папка

Передача файлов по сети Linux

1. Утилита nc

Этот способ отлично подойдет, если вам нужно передать один или несколько файлов и вы не хотите устанавливать никаких новых программ в систему. Утилита nc или netcat позволяет создавать tcp и unix сокеты в системе. По сути, это туннели, через которые мы можем передать любые данные, в том числе и файлы.

Утилита уже предустановлена, так что ничего дополнительно ставить не придется, нужно только знать IP адреса компьютеров в сети. Сначала создаем слушающий сокет на компьютере, все поступившие на него данные сразу пишем в файл:

nc -l -p 12345 > newfile

Здесь опция -p задает порт, можно брать привольное значение, только чтобы совпадало в обоих командах. Теперь отправляем файл из другого компьютера:

cat file | nc 192.168.0.101 12345

Тут мы указываем тот же порт и ip компьютера, где был запущен слушающий сокет — 192.168.0.101. Убедитесь, что Firewall не мешает подключению к выбранному порту иначе ничего не получится.

Мы можем передавать не только файлы, но и папки. Передача может быть выполнена в обоих направлениях, теперь отправим не на сокет, и от сокета:

tar -cf — /data | nc -l -p 12345

И принимаем отравленные данные на другом компьютере:

nc 192.168.1.2 12345 | tar -xf —

2. Передача файлов ssh

Передача файлов по ssh Linux — это самый быстрый и удобный способ обмена файлами. Достаточно, чтобы на компьютере была запущена служба SSH и у вас был к ней доступ. Затем с помощью утилиты scp туда можно передать любой, файл, это быстро и удобно, а ещё вы можете выбрать папку, в которую его надо сохранить. Допустим, вам надо передать файл с именем

/file.txt на компьютер с IP адресом 192.168.0.101, тогда используйте такую команду:

Утилита загрузит файл прямо в домашнюю папку на удалённом компьютере и вы сможете выполнять с ним действия по SSH. Если надо передать все файлы из папки можно использовать опцию -r:

Читайте более подробно про утилиту scp в отдельной статье.

3. Передача файлов по FTP

Не очень удобный и очень медленный способ передачи файлов по сети. Хорошо работает для больших файлов, но большое количество мелких файлов будут передаваться очень долго. На одном компьютере должен быть развернут FTP сервер, а на другом можно использовать графический FTP клиент FileZilla для подключения и передачи файлов.

4. Как передать файл в rsync

Утилита rsync тоже использует для передачи файлов SSH, однако она позволяет передавать целые папки, а также следить за состоянием файлов и если на удалённом компьютере такой файл уже есть, то он передаваться не будет. Таким образом можно копировать только измененные файлы и удобно передавать целые папки. Для примера возьмем тот же компьютер 192.168.0.101 и папку

Мы записываем все файлы из папки

/files в папку /home/root, а также получаем возможность синхронизировать их. Подробнее про rsync читайте в отдельной статье.

5. Сервер NFS

Ещё один способ передачи файлов между Linux серверами — это NFS. На одном из серверов разворачивается NFS сервер, а на другом, монтируется удаленная NFS папка в обычную файловую систему, после чего она становится частью файловой системы Linux и туда уже можно копировать файлы так, как будто это на той же машине. Просто и удобно, но надо настраивать NFS и ещё один минус по сравнению с FTP, у NFS нет возможности настроить простую авторизацию по паролю, можно ограничить монтирование только по IP адресу что не всегда удобно.

6. Сервер Samba

Передавать файлы в Windows на Linux и обратно может помочь удалённый доступ с помощью Samba сервера. Если развернуть сервер Samba на Linux машине, то к нему можно будет подключится из Windows и видеть все файлы в общей папке. Samba — не очень хорошее решение, так как могут возникнуть проблемы с файлами больше 1 Гб, передающимися очень долго, но для обмена файлами между Windows и Linux довольно неплохое решение, тем более, что обмен файлами выполняется через стандартный файловый менеджер.

Читайте также:  Включаю наушники звука нет windows 10

7. KDE-Connect

Для обмена файлами между компьютером Linux и Android можно использовать программу KDE-Connect. У неё есть приложение для Android, она встроена в окружение KDE, а для Gnome есть расширение GSConnect. Утилита позволяет передавать файлы на компьютер прямо с телефона, а также монтировать общую папку, в которую можно скидывать как файлы на компьютере, так и файлы на телефоне. Очень удобно. Читайте подробнее в статье про настройку KDE-Connect.

Выводы

Вы можете спросить, а какой же способ мне использовать? Ответ зависит от ваших потребностей, если вам нужен только передать один файл раз в месяц, может решением станет scp или FTP, а для регулярной передачи файлов по сети Linux удобнее использовать rsync, к тому же с помощью этой утилиты можно запланировать автоматическую синхронизацию. А какими способами пользуетесь вы? Напишите в комментариях!

Источник

Как скачать файл Linux

Загрузка файлов — это довольно простая операция, которую мы можем выполнять множество раз в день, даже не задумываясь в графическом интерфейсе с помощью браузера. Это очень просто и быстро, достаточно кликнуть мышкой. Но дело в том, что у вас может не всегда быть доступ к графическому интерфейсу, а на серверах графического интерфейса нету вовсе.

Что же делать, когда нужно скачать файл Linux через терминал? Для этого существует несколько утилит и даже консольных браузеров. В этой статье мы рассмотрим самые популярные способы загрузки файла в Linux, которые применяются наиболее часто. Рассмотрим примеры применения таких утилит и их возможности.

Как скачать файл в Linux с помощью wget

Утилита wget — это одна из самых популярных консольных утилит для загрузки файлов. Мы уже рассматривали как пользоваться этой утилитой в отдельной статье. С помощью wget можно сделать намного больше чем просто загрузить файл linux. Вы можете скачать все файлы со страницы или же полностью загрузить весь веб-сайт. Но сейчас нас будет интересовать только самая простая ситуация.

Чтобы скачать файл Linux консоль выполните такую команду:

$ wget адрес_файла

Например, если нам нужно скачать исходники какой-либо программы для сборки и установки с GitHub. Если нет браузера, но есть ссылка на архив с исходниками, то скачать их очень просто:

Во время загрузки утилита отображает простенький статус бар, в котором вы можете наблюдать за процессом загрузки. Загруженный файл будет находиться в текущей папке, по умолчанию, это ваша домашняя папка, если вы ее не изменяли. Дальше можно выполнять все нужные операции с файлом.

Иногда нужно скачать скрипт и сразу его выполнить. Это тоже делается достаточно просто. Нам нужно перенаправить содержимое файла на стандартный вывод, а затем передать его нужной утилите:

wget -O — http://www.tecmint.com/wp-content/scripts/Colorfull.sh | bash

Скрипт будет выполнен сразу после загрузки. Также вы можете указать имя для нового файла с помощью той же опции:

wget -O script.sh http://www.tecmint.com/wp-content/scripts/Colorfull.sh

Только обратите внимание, что со скриптами, загруженными из интернета нужно быть аккуратными. Сначала проверяйте не совершают ли они каких-либо деструктивных действий в системе. Из особенностей wget можно отметить, что утилита поддерживает протоколы HTTP, HTTPS и FTP, а для шифрования может использоваться только GnuTLS или OpenSSL.

Читайте также:  Драйвер для asus m5a78l m lx3 windows 10

Загрузка файла с помощью curl

Утилита curl предназначена для решения задач другого типа задач. Она больше подходит для отладки приложений и просмотра заголовков. Но иногда применяется и для загрузки файлов. По умолчанию, curl будет отправлять полученные данные сразу в стандартный вывод, поэтому она более удобна для загрузки скриптов:

curl http://www.tecmint.com/wp-content/scripts/Colorfull.sh | bash

Если же вы хотите записать загруженные данные в файл, то нужно использовать опцию -O и обязательно в верхнем регистре:

curl -O https://github.com/torvalds/linux/archive/v4.11-rc6.tar.gz

Когда загрузка файла в linux будет завершена, он будет находится в текущей папке. Вывод утилиты состоит из нескольких колонок, по которым можно детально отследить как происходит процесс загрузки:

  • % — показывает на сколько процентов загрузка завершена на данный момент;
  • Total — полный размер файла;
  • Reсeived — количество полученных данных;
  • Xferd — количество отправленных на сервер данных, работает только при выгрузке файла;
  • Average Speed Dload — средняя скорость загрузки;
  • AVerage Speed Upload — скорость отдачи для выгрузки файлов;
  • Time Total — отображает время, которое уйдет на загрузку всего файла;
  • Time Spend — сколько времени потрачено на загрузку файла;
  • Time Left — время, которое осталось до конца загрузки файла;
  • Current Speed — отображает текущую скорость загрузки или отдачи.

Если вы хотите скачать файл из командной строки linux и сохранить его с произвольным именем, используйте опцию -o в нижнем регистре:

curl -o taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

Например, если для этого файла не задать имя, то он запишется с именем скрипта, а это не всегда удобно. Если остановиться на отличиях curl от wget, то здесь поддерживается больше протоколов: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP и RTSP, а также различные виды шифрования SSL.

Скачивание файла с помощью aria2

Консольная утилита aria2 — это еще более сложный загрузчик файлов, чем даже curl. Здесь поддерживаются такие протоколы, как HTTP, HTTPS, FTP, SFTP, BitTorrent и Metalink. Поддержка BitTorrent позволяет загружать файлы и раздавать их даже по сети Torrent. Также утилита примечательна тем, что может использовать несколько каналов для загрузки файлов чтобы максимально использовать пропускную способность сети.

Например, чтобы скачать файл используйте такую команду:

Здесь тоже будет отображаться небольшой статус-бар с подробной информацией про состояние загрузки. Чтобы начать загрузку торрента. достаточно передать торрент файл или magnet ссылку:

aria2c http://example.org/mylinux.torrent
$ aria2c ‘magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C’

Еще одна ситуация, когда вам нужно скачать файл из командной строки linux, вы знаете где его найти, но у вас нет прямой ссылки. Тогда все ранее описанные утилиты не помогут. Но вы можете использовать один из консольных браузеров, например, elinks. Если эта программа еще не установлена, то вы можете найти ее в официальных репозиториях своих дистрибутивов.

Запустите браузер, например, с помощью команды:

В первом окне нажмите Enter:

Затем введите URL страницы, например, не будем далеко ходить и снова скачаем ядро с kernel.org:

Когда вы откроете сайт, останется только выбрать URL для загрузки:

Далее выберите что нужно сделать с файлом, например, сохранить (save), а также выберите имя для нового файла:

В следующем окне вы увидите информацию о состоянии загрузки:

Выводы

В этой статье мы рассмотрели как скачать файл Linux через терминал с помощью специальных утилит и консольного браузера. В обычной домашней системе нет большой необходимости для таких действий, но на сервере это может очень сильно помочь. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Оцените статью