Архив автора: admin

MikroTik –L2TP/IPsec VPN (Remote Access).

Упрощенная настройка L2TP/IPsec. К ЛВС и серверу в главном здании учреждения необходимо подключить 12 отделов, в каждом из которых 1-2 ПК через VPN. Все отделы пространственно расположены за городом и у них есть доступ в Интернет через ADSL модемы.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Схема подключения удаленных пользователей на рисунке ниже.

В результате настроек создается L2TP туннель, через который передается информация с IPsec  шифрованием.

На стороне пользователя VPN настраивается средствами Windows.

В главном здании VPN создан с помощью роутера MikroTik RB750Gr3 с прошивкой 6.48.1

Следует отметить, что в названной модели роутера отсутствует аппаратная поддержка IPsec и вся нагрузка по этому делу ложится на процессор.

Первоначальная настройка роутера выполнена по этой инструкции.

Все настройки выполняются из локальной сети через WinBox.

 

Порядок действий.

1.Создание профиля доступа.

2.Активация сервера L2TP.

3.Назначение IP-адреса клиентам VPN.

4.Создание пользователя VPN.

5.Создание интерфейса.

6.Правила Firewall.

7.Настройка VPN соединения клиента в Windows 10.

8.Подключение VPN соединения.

 

1.Создание профиля VPN

Профиль нужно создать до активации сервера L2TP, потому что его нужно указывать в настройках этого самого сервера.

1.Выполняем действия в меню PPP

2.Переходим на вкладку Profiles.

3.Нажимаем синий крест (плюс).

4.Переходим на вкладку Generals.

Вводим настройки:

5.Name: L2TP-REMOTE-ACCESS (любое понятное имя латиницей).

6.Local Address: 192.168.20.1 (адрес роутера в VPN)

7.Change TCP MSS: yes

8.Переходим на вкладку Protocols и выполняем настройка 9, 10, 11 как на картинке.

MPLS: yes —  передача пакетов по меткам. wiki

Compression: (сжатие данных) no —  используется при медленных каналах.

Encryption: (шифрование данных) yes — по согласованию с клиентом.

 

На вкладке Limits можно настроить лимит сессии, время отключения при бездействии, ограничение скорости подключения, одно подключение (Only one).

Настройки вкладок Queue и Scripts не изменялись.

Через командную строку терминала:



 

2.Активация сервера L2TP.

1.В боковом меню выбираем PPP.

2.В открывшемся окне PPP переходим на вкладку Interface.

3.В верхней панели нажимаем кнопку L2TP Server.

4.В открывшемся окне ставим галочку напротив Enable.

5.Default Profile: L2TP-REMOTE-ACCESS  указываем созданный ранее профиль

6.Authentication: mschap2 (остальные варианты отключаем)

7.Use IPsec: yes

8.IPsec Secret: 12345Password

9.Нажимаем кнопку «ОК».

Через командную строку терминала:



 

3.Назначение IP-адреса клиентам VPN.

Первый вариант – создать пул IP-адресов и раздавать их пользователям в автоматическом режиме.

Второй вариант – указать статический IP-адрес.

Так как в нашем случае всего 12 пользователей VPN, укажем для них статические IP-адреса из сети 192.168.20.0 Делается это при создании пользователя.

 

4.Создание пользователя.

1.Выполняем действия в меню PPP

2.Переходим на вкладку Secrets.

3.Нажимаем синий крест (плюс).

В открывшемся окне вводим:

4.Name: Remote-user1 (имя пользователя )

5.Password: Password1234 (сложный пароль из латинских букв и цифр разного регистра)

6.Service: L2TP

7.Profile: L2TP-REMOTE-ACCESS (созданный ранее профиль, выбираем из выпадающего списка)

8.Remote Address: 192.168.20.11 (статический IP для пользователя)

9.Нажимаем кнопку «ОК».

Через командную строку терминала:



Создаем необходимое количество пользователей аналогичными действиями.

 

5.Создание интерфейса.

Действие не обязательное, но в некоторых ситуациях может пригодится.

Если не создавать статический интерфейс, то он автоматически создается динамически при подключении пользователя.

 

6.Правила firewall.

Создадим два правила, одно для разрешения протокола IPsec, второе для доступа к необходимым портам.

Правило разрешения IPsec.

Переходим по меню  1 IP >> 2 Firewall >> 3 Filter Rules.

4.Нажимаем синий крест (плюс), в открывшемся окне на вкладке General (5) вводим настройки:

6.Chain: input (вход)

7.Protocol: ipsec-esp (протокол)

8.In Interface: ether1 (внешний интерфейс)

9.Жмем Apply для сохранения.

10.Переходим на вкладку Action.

11.Action: accept (разрешающее действие).

12.Нажимаем ОК для сохранения.

Через командную строку терминала:



 

Правило для открытия портов 500, 1701, 4500.

Переходим по меню  1 IP >> 2 Firewall >> 3 Filter Rules.

4.Нажимаем синий крест (плюс), в открывшемся окне на вкладке General (5) вводим настройки:

6.Chain: input (вход)

7.Protocol: UDP (протокол)

8.Dst. Port: 500, 1701, 4500 (порты назначения)

9.In Interface: ether1 (внешний интерфейс)

10.Переходим на вкладку Action.

11.Action: accept

12.Нажимаем кнопку ОК для сохранения правила.

Через командную строку терминала:



В списке правил появятся два новых. Расположить их желательно верху списка.

К правилам добавлены комментарии для ясности.

 

Правило NAT.

NAT masquerade правило для трафика VPN. Правило создается на вкладке NAT аналогично предыдущим правилам.

Через командную строку терминала:



*правило NAT для VPN трафика не является обязательным, но в некоторых случаях может пригодиться

7.Настройка VPN соединения клиента в Windows 10.

Удаленный компьютер подключен в Интернет. В этом ПК переходим в управление сетями.

Панель управления >> Сеть и Интернет >> Центр управления сетями и общим доступом.

Создаем новое подключение.

Среди вариантов подключения выбираем – «Подключение к рабочему месту».  Далее.

Выбираем – «Использовать мое подключение к Интернету (VPN)».

В следующем пункте указываем внешний статический IP-адрес роутера или внешний идентификатор MikroTik(1234567891443.sn.mynetname.net у каждого роутера свой).

В поле имя пишем любое понятное имя латинскими буквами. Отмечаем галочкой «Запомнить учетные данные».

Нажимаем кнопку «Создать».

Отредактируем свойства созданного VPN подключения в сетевых соединениях.

В свойствах переходим на вкладку безопасность. Указываем следующие параметры.

1.Тип VPN: Протокол L2TP с IPsec (L2TP/IPsec).

2.Дополнительные параметры.

======-Для проверки подлинности использовать общий ключ;

======-Ключ: 12345Password (вводим ключ IPsec);

======-Нажимаем ОК.

3.Шифрование данных: обязательное (отключится если нет шифрования)

4.Разрешить следующие протоколы – отмечаем точкой.

5.Протокол Microsoft CHAP версия 2 (MS-CHAPv2).

6.Кнопка «ОК» для сохранения настроек.

Переходим на вкладку сеть.

В свойствах указываем IP-адрес для клиента и предпочитаемый DNS.

Переходим на вкладку «Дополнительно».

Настройка – Использовать основной шлюз в удаленной сети. В нашем случае галочка убрана. Нажимаем ОК для сохранения.  Настройки в свойствах VPN-соединении у клиента завершены.

 

Если галочка стоит.

Весь трафик пойдет через MikroTik. В этом случае его можно контролировать, и он попадает под все правила и настройки роутера. Недостаток в замедлении скорости работы Интернета у клиента и дополнительной нагрузке на роутер.

Чтоб убедится, что трафик идет именно через роутер, на клиенте нужно запустить ping (когда VPN уже настроен и запущен в работу) на любой общедоступный сервер.

В роутере трафик можно отследить через Torch или в IP>>Firewall>>Connections.

Как видно, с IP-адреса одного из клиентов VPN пинг на IP 8.8.8.8 по протоколу icmp проходит через MikroTik (при условии установленной галочки в доп. свойствах).

 

Если галочка не стоит.

Если галочку убрать и переподключиться к VPN, то пинг на сервер гугл (8.8.8.8) уже не проходит через роутер. Он идет через основной шлюз ПК в Интернет.

Но также не проходит пинг в нужную сеть. ПК клиента не знает, через какой шлюз ему идти в сеть за VPNом. Для решения этого вопроса нужно создать статический маршрут в ПК клиента.

1.В командной строке (от имени администратора) вводим:



Находим сетевое соединение относящееся к VPN. Его номер 26.

При каждом новом создании VPN-соединения его номер меняется.

2.Вводим маршрут



192.168.1.0 mask 255.255.255.0 — сеть назначения с маской

192.168.20.1 – IP-адрес VPN-сервера (VPN шлюз)

metric 1 –  метрика

if 26 – номер интерфейса (который определили выше)

-p – сохранение маршрута при перезагрузке ПК.

 

После этих действий вводим еще раз команду



Видим постоянный маршрут, который означает, что для доступа к сети с IP-адресом 192.168.0.0 (которая за VPN) нужно идти в шлюз 192.168.20.1.

Пинг начинает проходить и доступ к ресурсам в сети расположенной после VPN появляется.

Прохождению пинга могут препятствовать:

-антивирус (добавить сеть в доверенные или приостановить защиту на время настроек)

-брандмауэр Windows (отключить)

-сетевое обнаружение (включить)

-правила firewall в MikroTik (проверить  наличие/отсутствие и расположение).

 

Удаление маршрута (если понадобится).



 

8.Подключение VPN соединения.

В нижней правой части экрана клиентского ПК нажимаем на значок сети, выбираем из раскрывшегося списка нужное соединение и нажимаем кнопку «Подключится».

В окне авторизации вводим учетные данные пользователя VPN.

После правильного ввода учетных данных произойдет подключение.  VPN начнет работать.

 

Как узнать что шифрование IPsec.

В PPP>>Active Connections виден тип шифрования. Если настройка не сработала и шифрование MPPE128 нужно перезагрузить роутер.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-05-01T11:51:24
Настройка ПО

Блокировка запуска программ через реестр Windows.

Постановка задачи: необходимо сделать так, чтоб пользователь в своей учетной записи мог запускать только разрешенный перечень программ.

Варианты исполнения:

-через групповые политики;

-через реестр.

 

Способ через реестр.

Внимание! Некорректные действия в реестре могут привести к неработоспособности ОС Windows и как следствие ее переустановка.

 

Входим в реестр Windows:

-нажимаем сочетание клавиш Win+R;

-в строке «Выполнить» вводим: regedit;

-нажимаем ОК или кнопку «Ввод».

В реестре переходим по пути:

КомпьютерHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer (настройки текущего пользователя).

Создаем параметр DWORD (32 бита) правой кнопкой мыши.

 

Название параметра: RestrictRun (запретить запуск приложений, кроме указанных)

Значение:1

 

Теперь укажем, какие приложения можно запускать. Создаем раздел с таким же названием RestrictRun.

В этом разделе создаем строковые параметры с номерами по порядку.

В значении каждого строкового параметра указываем приложение, которое разрешено запускать.

Начать желательно с  regedit.exe, чтоб не заблокировать самого себя.

На этом все. Перезагружаем ПК, чтоб настройки применились.

В итоге этого примера на компьютере оказались разрешенными к запуску только 5 указанных программ: regedit.exe – реестр, calc.exe – калькулятор, mspaint.exe – пэйнт, avpui.exe – антивирус, winword.exe – ворд.

При запуске других программ появляется сообщение – Операция отменена из-за ограничений, действующих на этом компьютере. Обратитесь к системному администратору.

Если необходимо обратное действие  — разрешены все программы, кроме указанных в списке, необходимо использовать DWORD с названием DisallowRun и так же создать папку с перечнем запрещенных программ.

Для отмены блокировки необходимо удалить в реестре все созданное ранее и перезагрузить ПК.

Если по случайности заблокировался доступ в реестр, то необходимо выполнить загрузку с установочной флэшки Windows и удалить созданные параметры. Путь к файлам нужно искать в ветке HKEY_USERSимя вашей учетной записи SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

Продвинутые пользователи могут догадаться о причине блокировки, зайти в реестр и удалить ее. Чтоб устранить эту проблему нужно ограничить доступ к диску с папкой файлов реестра.

 

Reg-файл.

Теперь немного автоматизируем процесс.

Создадим reg-файл с параметрами настроек, который можно применять на других ПК и каждый раз не заходить в реестр. Такой метод называется tweak reg (твик реестра).

 

Создаем текстовый файл с расширением .txt

Меняем расширение на .reg

Чтоб менять расширение файлов в Windows10 нужно на вкладке «Вид» верхней панели папки установить галочку «Расширения имен файлов».

Получился reg-файл в который мы внесем настройки реестра.

 

Другой способ получить reg-файл – экспортировать настройки из реестра.

Экспортируем в удобное место и называем любым именем.

 

Открываем экспортированный файл с помощью блокнота Notepad++ (или другого удобного текстового редактора). Если просто кликнуть по файлу 2 раза мышкой, то он внесет изменения в реестр.

Внутри файла следующее содержание.



Рассмотрим построчно:

1 строка – версия редактора реестра Windows (ничего не меняем);

2 строка – пустая (обязательно);

3 строка – путь реестра в квадратных скобках;

4 строка – какой-то параметр, который был по умолчанию (можно удалить);

5 строка – параметр DWORD созданный ранее, со значением 1;

6 строка – пустая

7 строка – следующая ветка реестра;

7-12 строки – строковые параметры, с указанием разрешенных к запуску программ.

13 строка пустая (обязательно).

 

Для удаления значения какого-то параметра нужно использовать ключ   –   (минус)

Например, нужно деактивировать строку 5 и строки 7-12. Это будет выглядеть так:



 

К параметрам можно добавлять комментарий. Для этого вначале строки ставится   ;  (точка с запятой)

На картинке ниже настройки с комментариями.

Таким способом можно редактировать любую ветку реестра.

Чтоб применить все внесенные настройки сохраняем файл и кликаем по нему 2 раза. В открывшемся предупреждении нажимаем «Да».

Перезагружаем ПК.

На этом описание базового функционала редактора реестра завершается. Более подробно можно прочитать в учебниках и в Интернете.

Теперь, зная все выше описанное, создаем reg-файл с необходимыми настройками реестра и применяем на любом ПК с ОС Windows.

Кроме разрешения запуска программ можно заблокировать доступ к дискам, панели управления и еще много куда. Название ключей для этих действий нужно искать в Интернете.

Для удобства администрирования были созданы два reg-файла: блокиратор и разблокиратор. Блокиратор, как понятно из названия, блокирует все после его применения (нельзя вызвать строку «Выполнить» и запустить редактор реестра). Разблокиратор – все что было заблокировано – разблокирует.

Работоспособность этого метода проверена в Window7 и Windows 10.



2021-04-30T16:46:16
Настройка ПО

Аренда хостинга в Украине: как выбрать

Выбор хостинга или сервера — ключевой момент для вебмастера. От него зависит многое в работе сайта: скорость его загрузки, пропускная способность и другие важные показатели. Всего существует пять основных разновидностей такой услуги. Что лучше подойдёт для аренды хостинга в Украине и как понять, что подойдёт вам?

 

Как выбрать хостинг в Украине?

Определитесь с бюджетом на его аренду и со своими требованиями. Что у вас за сайт, сколько у него посетителей в месяц, в день, сколько разделов, страниц, много ли новых пользователей регистрируется (опять же в день и месяц). В конечном итоге надо просто посчитать количество данных, проходящих через него.

 

Виртуальный

 

Пользуется наибольшим спросом среди вебмастеров. Является самым простым и недорогим. Такой хостинг подходит большинству площадок. Но не всем: это подходящая разновидность для простых сайтов, вроде лендингов, простых форумов или новостных порталов, но вот для онлайн-магазина его мощности уже не хватит.

 

Виртуальный выделенный (dedicated)

Он же VDS либо VPS. На таком сервере может помещаться до 20 виртуальных машин. Стоит обычно дороже первого варианта, но по характеристикам заметно мощнее. Выше здесь и уровень безопасности. Среди вебмастеров, которым требуется покупка хостинга в Украине, этот также пользуется большим спросом, пусть цены и выше, чем при аренде или приобретении обычного виртуального.

 

Выделенный (dedicated)

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

 

Colocation

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

 

Облачный

Аренда хостинга в Украине: как выбрать

 

Название говорит само за себя — здесь используется виртуальное хранилище данных (облако). Жёсткого деления на тарифы нет, его возможность расширить функционал.

Провайдер Deltahost готов дать Вам возможность выгодной покупки хостинга в Украине, США или Нидерландах и выбора любой из его разновидностей.

 

Почему Deltahost?

Эта компания предоставляет услуги аренды хостинга в Украине на протяжении уже нескольких лет. Помимо украинских дата-центров, в её распоряжении имеются американские и нидерландские.

Здесь ваши данные будут надёжно защищены от утечки, а сайт — от хакерских атак.

Сайт можно быстро перенести от другого провайдера — вы заметите разницу в скорости и оперативную работу сотрудников компании.

Покупка хостинга в Украине у Deltahost — очень выгодное предложение: вы получаете по стандартной стоимости бесплатную и круглосуточную поддержку, разнообразие тарифов, доменов Украины и других стран.



2021-04-30T13:37:32
Сервер

Как отменить действия групповой политики на локальном компьютере.

Групповые политики — это основной инструмент управления пользователями в домене. С их помощью администратор может настраивать практически любые параметры рабочей среды пользователя. Все, начиная от запрета на запуск определенных программ и заканчивая рисунком на рабочем столе можно задать через групповые политики. Управление политиками осуществляется на уровне домена и только члены группы администраторов домена или предприятия имеют к ним доступ. Читать

Настройка прокси-соединения с системой на Java

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

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

Настройка прокси-соединения с системой на Java

Подходы:

Мы выясним два способа подключения через прокси-серверы в java, а именно:

  1. Устаревший подход, охватывающий всю JVM и настраиваемый с помощью системных свойств.
  2. Использование класса Proxy, который обеспечивает больший контроль, разрешая настройку на основе каждого соединения.

 

Метод 1: использование глобальной настройки

Java демонстрирует набор системных свойств, которые можно использовать для настройки поведения всей JVM. Этот «универсальный» подход зачастую проще всего реализовать, если он подходит для конкретного случая использования. Мы можем установить необходимые свойства из командной строки во время вызова JVM. В качестве альтернативы мы также можем определить их с помощью System.setProperty () во время выполнения. Вот как их определить с помощью командной строки, как показано ниже:

 

1.1. Устанавливается с помощью аргументов командной строки

Мы можем определить прокси в командной строке, минуя параметры как системные свойства:

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 com.geeksforgeeks.networking.proxies.CommandLineProxyDemo

 

При запуске процесса таким образом мы можем просто использовать openConnection () для URL без дополнительной работы:

URL url = new URL(RESOURCE_URL);



URLConnection con = url.openConnection();

 

1.2 Настройка прокси с помощью метода System.setProperty ()

Если при использовании командной строки возникают проблемы, есть другой способ сделать это, используя метод System.setProperty (). Для настройки прокси.

System.setProperty(“http.proxyHost”, “127.0.0.1”);  



System.setProperty(“http.proxyPort”, “8080”);  



URL url = new URL(RESOURCE_URL);  



URLConnection con = url.openConnection();  



// …

 

Если мы затем вручную отключим соответствующие системные свойства, прокси больше не будет использоваться:

System.setProperty(“http.proxyHost”, null);

 

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

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

Примечание
Чтобы обойти это ограничение, может быть привлекательно включать и выключать настройки, если это необходимо. Но необходимо принять меры для защиты от проблем параллелизма в многопоточной программе.

 

Таким образом, в качестве альтернативы Proxy API более эффективен и обеспечивает больший контроль над конфигурацией прокси. В качестве альтернативы Proxy API обеспечивает более детальный контроль над конфигурацией прокси. Это рождает другой подход, который через Proxy API.

 

Метод 2: использование прокси API

Класс Proxy дает нам гибкий способ настройки прокси для каждого соединения. Если существуют какие-либо существующие настройки прокси для всей JVM, настройки прокси на основе подключения с использованием класса Proxy переопределят их. Вот три типа прокси, которые мы можем определить по типу прокси:

  1. HTTP  — это прокси, использующий протокол HTTP
  2. SOCKS — это прокси, использующий протокол SOCKS.
  3. DIRECT — это явно настроенное прямое соединение без прокси.

(A) Использование прокси-сервера HTTP

Чтобы использовать HTTP-прокси, мы сначала оборачиваем экземпляр SocketAddress с помощью Proxy и типа Proxy.Type.HTTP. Затем мы просто передаем экземпляр Proxy в URLConnection.openConnection ():

URL weburl = new URL(URL_STRING);



Proxy webProxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(“127.0.0.1”, 8080));



HttpURLConnection webProxyConnection = (HttpURLConnection) weburl.openConnection(webProxy);

 

Теперь мы подключимся к URL_STRING, но затем направим это соединение через прокси-сервер, расположенный по адресу 127.0.0.1:8080.

(B) Использование ПРЯМОГО прокси

У нас может возникнуть потребность напрямую подключиться к хосту. В этом случае мы можем явно обойти прокси, который может быть настроен глобально, с помощью статического экземпляра Proxy.NO_PROXY. По сути, API создает для нас новый экземпляр Proxy, используя Proxy.Type.DIRECT в качестве типа:

HttpURLConnection directConnection = (HttpURLConnection) weburl.openConnection(Proxy.NO_PROXY);

 

(C) Использование прокси-сервера SOCKS

Прокси-сервер Socks работает аналогично варианту HTTP при работе с URLConnection. В прокси Socks сначала мы оборачиваем экземпляр SocketAddress прокси, используя тип Proxy.Type.SOCKS. После этого экземпляр Proxy передается в URLConnection.openConnection.

Proxy socksProxy  = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(“127.0.0.1”, 1080));



HttpURLConnection socksConnection = (HttpURLConnection) weburl.openConnection(socksProxy);

 

Также можно использовать прокси-сервер SOCKS при подключении к сокету TCP. Сначала мы используем экземпляр Proxy для создания Socket. После этого мы передаем целевой экземпляр SocketAddress в Socket.connect () следующим образом:

Socket proxySocket = new Socket(socksProxy);



InetSocketAddress socketHost = new InetSocketAddress(SOCKET_SERVER_HOST, SOCKET_SERVER_PORT);



proxySocket.connect(socketHost);

 

Пример:



// Java-программа для создания простого прокси-сервера

  

// Импорт классов ввода вывода

import java.io.*;

// Импорт

import java.net.*;

  

public class SimpleProxyServer {

    public static void main(String[] args)

        throws IOException

    {

        try {

            String host = "Ваш прокси сервер";

            int remoteport = 100;

            int localport = 111;

            // Печать сообщения о запуске

            System.out.println("Starting proxy for " + host

                               + ":" + remoteport

                               + " on port " + localport);

            // И начните запускать сервер

            runServer(host, remoteport,

                      localport); // never returns

        }

        catch (Exception e) {

            System.err.println(e);

        }

    }

  

    /**

     * запускает однопоточный прокси-сервер на указанном

     * локальном порту. Он никогда не возвращается.

     */

    public static void

    runServer(String host, int remoteport, int localport)

        throws IOException

    {

        // Create a ServerSocket to listen for connections

        // with

        ServerSocket ss = new ServerSocket(localport);

  

        final byte[] request = new byte[1024];

        byte[] reply = new byte[4096];

  

        while (true) {

            Socket client = null, server = null;

            try {

                // Дождитесь подключения на локальном порту

                client = ss.accept();

  

                final InputStream streamFromClient

                    = client.getInputStream();

                final OutputStream streamToClient

                    = client.getOutputStream();

  

                // Установите соединение с реальным сервером.

                // Если мы не можем подключиться к серверу,

                // отправьте сообщение об ошибке клиенту, отключитесь

                // и продолжайте ждать подключения.

                try {

                    server = new Socket(host, remoteport);

                }

                catch (IOException e) {

                    PrintWriter out

                        = new PrintWriter(streamToClient);

                    out.print(

                        "Proxy server cannot connect to "

                        + host + ":" + remoteport + ":n"

                        + e + "n");

                    out.flush();

                    client.close();

                    continue;

                }

  

                // Получить потоки сервера.

                final InputStream streamFromServer

                    = server.getInputStream();

                final OutputStream streamToServer

                    = server.getOutputStream();

  

                // поток для чтения запросов клиента

                // и передачи их на сервер. Отдельный

                // поток для асинхронного.

                Thread t = new Thread() {

                    public void run()

                    {

                        int bytesRead;

                        try {

                            while ((bytesRead

                                    = streamFromClient.read(

                                        request))

                                   != -1) {

                                streamToServer.write(

                                    request, 0, bytesRead);

                                streamToServer.flush();

                            }

                        }

                        catch (IOException e) {

                        }

  

                        // клиент закрыл соединение

                        // с нами, поэтому закройте наше

                        // соединение с сервером.

                        try {

                            streamToServer.close();

                        }

                        catch (IOException e) {

                        }

                    }

                };

  

                // Запустите поток запросов от клиента к серверу

                // запуск

                t.start();

  

                // Прочитайте ответы сервера

                //  и передайте их обратно клиенту

                int bytesRead;

                try {

                    while ((bytesRead

                            = streamFromServer.read(reply))

                           != -1) {

                        streamToClient.write(reply, 0,

                                             bytesRead);

                        streamToClient.flush();

                    }

                }

                catch (IOException e) {

                }

  

                // Сервер закрыл свое соединение с нами,

                // поэтому мы закрываем наше соединение с нашим клиентом.

                streamToClient.close();

            }

            catch (IOException e) {

                System.err.println(e);

            }

            finally {

                try {

                    if (server != null)

                        server.close();

                    if (client != null)

                        client.close();

                }

                catch (IOException e) {

                }

            }

        }

    }

}

 

Вывод:

Настройка прокси-соединения с системой на Java

 

Заключение

В соответствии с выводом мы выясняем, как работать с прокси-серверами в ядре Java. Сначала мы рассмотрели более старый, более глобальный стиль подключения через прокси-серверы с использованием системных свойств. Затем мы увидели, как использовать класс Proxy, который обеспечивает детальный контроль при подключении через прокси-серверы.



2021-04-29T21:34:43
Java

Во время пандемии число пользователей, которым требуются более быстрые интернет-услуги, достигло рекордно высокого уровня

Когда вы застряли внутри на несколько недель подряд, какие услуги вам нужны и в которых больше всего нуждаетесь? Быстрое и надежное интернет-соединение возглавляет списки многих людей с рекордным объемом поиска, приходящимся на первый пик пандемии в апреле:

 

Быстрый Интернет важнее, чем когда-либо

Если в вашем доме проживает несколько человек, вы поймете, что иногда три или четыре устройства не могут передавать потоковый контент с высокой пропускной способностью (HD-видео, игры и т. д.) Через одно и то же медленное интернет-соединение. Сегодня к этой пропускной способности предъявляются очень большие требования, подумайте обо всех устройствах, подключенных к вашему Wi-Fi. Потоковое видео обычно является самым большим источником данных, но оно также является одним из наиболее часто используемых.

Прогони медленный интернет из дома. Подключай бесконтактно тариф с технологичным роутером от компании izet-telecom.ru, подробнее на сайте chelyabinsk.izet-telecom.ru. Проверьте, подключен ли Ваш дом к интернету iZet в Челябинске.

Люди ищут в Yandex или Google «более быстрый интернет» на рекордно высоких уровнях во время пандемии. Можно предположить, что им нужна дополнительная пропускная способность, чтобы поддерживать навязчивые идеи своей семьи Netflix, Youtube, Disney+ и World of Warcraft, и они не обязательно довольны своей текущей настройкой.

 

Ограничения и препятствия на пути к поиску лучшего Интернета

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

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



2021-04-29T14:52:28
Сетевые технологии