Корпус GMC H200 Phoong V
Материнская плата MSI 970A-G46
Процессор AMD FX-8300 OEM
Кулер Thermalright Macho Rev.B
Оперативная память Kingston HyperX FURY Blue Series [HX318C10F/8] 8 Гб 4шт.
Блок питания Thermaltake Toughpower 850W
Автор: zveronline
pacman-key
При ошибках вроде этих:
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.
Помогает что-то из этого:
# Archive the GNUPG directories
mv $HOME/.gnupg $HOME/.gnupg.bak
sudo mv /root/.gnupg /root/.gnupg.bak
# This one fixed the GNUPG Error
dirmngr
# Refresh Keys
pacman-key –init
pacman-key –populate archlinux
pacman-key –refresh-keys
Краткий ман по сборке OpenWrt
Получаем последнюю версию OpenWrt:
# svn co svn://svn.openwrt.org/openwrt/trunk/
Получаем дополнительные пакеты:
# ./scripts/feeds update -a && ./scripts/feeds install -a
Применяем дефолтную конфигурацию:
# make defconfig
Конфигурируем систему (выбираем свой тип роутера):
# make menuconfig
Запускаем сборку OpenWrt:
# make
Готовый файл прошивки для заливки в роутер находится здесь:
/bin/brcm47xx$
Если нужно просто обновить ранее скаченый дистрибутив то обновляем до последней версии с помощью команды:
# svn up
Также возможно получение исходников определнной версии:
# svn co -r 27495 svn://svn.openwrt.org/openwrt/trunk/
Для сборки какого-то отдельного (определенного) пакета из состава openWrt:
# make package/busybox/install
plex садист
настройка iptv от ростелеком на openwrt
Для настройки я использую веб-интерфейс luci. Выделим порт под приставку, если она есть, для этого нужно соединить порт wan с портом для приставки в bridge, делается это через VLAN.
vlan 1 – группа lan, vlan 2 – группа wan. В моем случае порт 1 это порт wan, 4 порт по факту 3, нужно перенести этот порт из vlan 1 в vlan 2. Для этого указываем в vlan 2 значение “без тега”, а в vlan 1 “выключено”.
Далее рассказ о том как настроить iptv чтобы иметь возможность смотреть его с пк/raspberry/телевизора/холодильника/кофеварки… и если вы не собираетесь смотреть с чего либо кроме iptv приставки то дальше можно не читать.
vlan на прошивке tomato
На роутере asus rt n12 d1 не настраивается vlan из веб интерфейса, остается только делать это в консоли. Для этого конечно надо зайти по ssh на роутер. Привожу пример изменения LAN1 —> WAN c прошивкой Tomato:
nvram show | grep vlan.ports
В ответ получаем:
vlan0ports=1 2 3 4 5* vlan1ports=0 5 vlan3ports= vlan4ports= vlan5ports= vlan6ports= vlan7ports= vlan8ports= vlan9ports=
Делаем выводы что vlan0 это LAN порты, а vlan1 это WAN порт.
Исключаем WAN из vlan1, а LAN1 добавляем:
nvram set vlan0ports="2 3 4 5*" nvram set vlan1ports="1 5" nvram set manual_boot_nv=1
Сохраняем и перезагружаем роутер:
nvram commit reboot
Всё! Должно всё работать!
Также этим методом можно выделить LAN порт для iptv приставки, к примеру для провайдера Beeline:
nvram set vlan0ports="1 2 3 5*" nvram set vlan1ports="0 4 5" nvram set manual_boot_nv=1 nvram commit reboot
и так, 4 порт выделен для iptv приставки
Алтернативная прошивка на Asus RT-N12 D1
Для начала, окирпичить этот девайс случайно не получится.
Родная прошивка принимает только свои образы, прошить альтернативные прошивки можно из режима восстановления.
В режиме восстановления загрузчик роутера сливает образ по tftp, мне было влом поднимать tftp и я скачал утиль восстановления asus.
Первым делом я поискал прошивку dd-wrt, но ничего дельного не нашел, а то что нашел было эдак 2010 года.
В идеале подошла бы openwrt, там возможностей больше. Поддержка нужного чипсета есть только в нестабильной ветке, после прошивки прекомпиленной версии я заметил что не работает wi-fi, погуглив я понял что там в основном всего 3 драйвера: b43, wl и еще какой-то. В конечном итоге я забил на openwrt и поставил tomato, мне от прошивки нужен был только igmp для нормальной работы iptv и он там есть, в стандартной прошивке не было. Работает вполне стабильно, кстате драйвер там тот же wl, только на ядре 2.6
nginx webmcr rewrite rules
server {
listen 80;
server_name ordinary-minecraft.ru www.ordinary-minecraft.ru;
root /srv/webmcr/;
index index.php index.html;
location /news {
rewrite ^/news/([^/]+)/?$ /index.php?id=$1 last;
}
location /category {
rewrite ^/category/([^/]+)/?$ /index.php?cid=$1 last;
}
location /list {
rewrite ^/list/([^/]+)/?$ /index.php?l=$1 last;
}
location /control {
rewrite ^/control/([^/]+)/?$ /index.php?mode=control&do=$1 last;
}
location /get {
rewrite ^/get/([^/]+)/?$ /action.php?method=download&file=$1 last;
}
location /go {
rewrite ^/go/([^/]+)/?$ /index.php?mode=$1 last;
}
location = /authenticate {
rewrite ^(.*)$ /MineCraft/auth16x.php last;
}
location = /invalidate {
rewrite ^(.*)$ /MineCraft/invalidate16x.php last;
}
location = /refresh {
rewrite ^(.*)$ /MineCraft/refresh16x.php last;
}
location /game {
rewrite ^/game/joinserver.jsp /MineCraft/joinserver.php last;
}
location / {
try_files $uri $uri/index.php?$uri&$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
nginx-frontend + nginx-backend и потерявшиеся реальные IP посетителей.
Мы говорим о связке nginx+nginx. Те, кто впервые настраивает такую связку наверняка столкнулись с тем, что nginx-backend пишет в лог (и отдает в PHP/Django и прочее, соответственно) IP фронт-энда. Если в апаче это решалось при помощи mod_rpaf, то в nginx’e всё намного проще.
В секцию http {} или в секцию нужного server {} (если вы упрямы — то можете даже в location {} вписать) пишем следующие строки:
set_real_ip_from 8.8.8.8;
real_ip_header X-Real-IP;
Либо:
set_real_ip_from 192.168.0.0/24;
real_ip_header X-Real-IP;
В директиве set_real_ip_from мы указываем серверы, которым мы доверяем тяжкую ношу по передаче нам IP адресов посетителей (если тут указать чужие серверы — то эти самые чужие серверы смогут вас очень красиво и весело dos-ить с адресов вида 0.0.0.1, например).
Директивой real_ip_header мы указываем откуда брать IP. В данном примере нужно на фронте написать proxy_set_header X-Real-IP $remote_addr; в proxy_pass.
nginx как reverse proxy
Конфигурация nginx без ssl
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Конфигурация nginx с ssl
server {
listen 80;
server_name mydomain.com;
return 301 https://$server_name$request_uri; # enforce https
}
server {
listen 443;
server_name mydomain.com;
access_log /var/log/nginx/ssl-access.log;
ssl on;
ssl_protocols SSLv3 TLSv1;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
location / {
proxy_pass https://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass_header Set-Cookie;
}
}