Socks5 сервер на Golang
В этой статье я постараюсь рассказать и показать вам - как настроить свой socks5 сервер на Golang
Статья расчитана на абсолютных новичков, поэтому будет очень много перекрестных ссылок
Нам понадобится:
1) Любой VPS (можно поискать вот тут), либо, для тестов, любой Android смартфон (для данной статьи использован второй вариант)
2) Прямые руки, можно и кривые, но обязательно из плеч
Для того, чтобы подключится к вашему телефону с компьютера - и то и другое устройство должны быть в одной сети (например телефон подключен к Wifi, а ПК подключен по проводу к тому же роутеру который раздает Wifi)
Установите терминал для Android смартфонов - Termux
Если хочется подключится к телефону с компьютера - выполните в Termux следующие действия:
1) Команда
2) Команда
3) Команда
4) Команда
5) Команда
6) Если у вас Windows - скачайте putty, если под Linux - команда ssh вам в помощь
6.1) При подключении из putty - вбейте в соответсвующие поля IP (в моем случае 192.168.1.145) и порт (8022), нажмите "Open" и введите логин и пароль полученные ранее
6.2) При подключении из Linux - команда выглядит вот так
7) После завершения работы - с телефона убейте процесс sshd командой
и удалите пароль пользователя командой
Установите терминал для Android смартфонов - Termux
Если хочется подключится к телефону с компьютера - выполните в Termux следующие действия:
1) Команда
pkg install openssh
установит ssh клиент и sshd сервер2) Команда
passwd
с последующим вводом паролей - собственно и установит пароль для пользователя (пароль при вводе не отображается, это нормально)3) Команда
whoami
выдаст вам имя пользователя для которого в пункте 2 вы задали пароль, запомните это имя4) Команда
sshd
запустит ваш ssh сервер на порту 8022 (в стандартной сборке openssh для Termux установлен именно этот порт)5) Команда
ifconfig
выведет настройки вашего интернет соединения, ищите wlan, там в строке будет ваш IP, пригодится6) Если у вас Windows - скачайте putty, если под Linux - команда ssh вам в помощь
6.1) При подключении из putty - вбейте в соответсвующие поля IP (в моем случае 192.168.1.145) и порт (8022), нажмите "Open" и введите логин и пароль полученные ранее
6.2) При подключении из Linux - команда выглядит вот так
ssh -p 8022 логин@IP_адрес
7) После завершения работы - с телефона убейте процесс sshd командой
killall -9 sshd
и удалите пароль пользователя командой
rm .termux_authinfo
(находится в домашнем каталоге, перейти в него - команда cd
)Установка socks5 сервера
1) Необходимо загрузить на ваше устройство компилятор Go, сделать это можно командами:
- Для Android -
pkg install golang
- Для VPS -
apt install golang
(в зависимости от установленной системы команда может отличаться, смотрите документацию на ваш дистрибутив)
2) Тем же способом грузим git (без него не работает необходимая команда
go get
)- Для Android -
pkg install git
- Для VPS -
apt install git
3) Создаем директорию под наши файлы командой
mkdir golang-socks
и переходим в нее командой cd golang-socks
4) Устанавливаем переменную GOPATH командой
export GOPATH=$HOME/golang-socks
5) С помощью go get выкачиваем вот этот репозиторий Go-Socks5
- Для всех -
go get github.com/armon/go-socks5
nano main.go
записываем в файл вот этот код:
C-like:
package main
import socks5 "github.com/armon/go-socks5"
func main() {
cred := socks5.StaticCredentials{"user": "pass"}
conf := &socks5.Config{Credentials: cred}
server, err := socks5.New(conf)
if err != nil {
panic(err)
}
err = server.ListenAndServe("tcp", "0.0.0.0:9000")
if err != nil {
panic(err)
}
}
cred := socks5.StaticCredentials{"user": "pass"}
указав желаемое имя пользователя (вместо слова user) и пароль (соответственно вместо pass), а также вы можете изменить порт на котором будет запускаться ваш socks5 сервер изменив число 9000 в строке err = server.ListenAndServe("tcp", "0.0.0.0:9000")[B]
[/B]Для того чтобы выйти из nano требуется нажать CTRL+X, согласится с сохранением клавишей Y и утвердить имя файла клавишей Enter
7) Готово, теперь можно запускать наш socks5 сервер командой
go run main.go
и попробовать просканировать через nmap командой nmap localhost -p9000
, просто потому что он под рукой 7.1) В случае если при запуске посыпались ошибки о нехватке библиотек - выполните команду
go get golang.org/x/net/context
, она догрузит недостающую библиотеку8) Для того чтобы запуск socks5 сервера не занимал терминал и не падал при выходе с сервера - я предпочитаю использовать команду
screen
, если запущен прошлый socks5 сервер - останавливаем его сочетанием CTRL+C, вводим screen, жмем Enter и запускаем socks5 сервер как из прошлого пункта. Для отключения от виртуального терминала screen - нажмите CTRL+A и отдельно D (в будущем в этот терминал можно вернуться командой screen -r
)9) Можешь скомпилировать текущий код, но тут уж сам
PROTEY.NET
Зашел в топик? Оставь коммент!
Не зарегистрирован? Регистрируйся и оставляй коммент!
Нет пк? Покупай, регистрируйся и оставляй коммент!
Оставил коммент? Не скупись - оставь еще, найди полезных ссылок, похожих статей и оставляй!
Зашел в топик? Оставь коммент!
Не зарегистрирован? Регистрируйся и оставляй коммент!
Нет пк? Покупай, регистрируйся и оставляй коммент!
Оставил коммент? Не скупись - оставь еще, найди полезных ссылок, похожих статей и оставляй!