دلیل این خطا به علت رزرو پورت ها توسط hyper-v می باشد
برای حل این مشکل این دستورات را وارد کنید
در اینجا پورت مورد نظرمون 8080 است
net stop winnat
netsh int ipv4 add excludedportrange protocol=tcp startport=8080 numberofports=1
net start winnat
دلیل این خطا به علت رزرو پورت ها توسط hyper-v می باشد
برای حل این مشکل این دستورات را وارد کنید
در اینجا پورت مورد نظرمون 8080 است
net stop winnat
netsh int ipv4 add excludedportrange protocol=tcp startport=8080 numberofports=1
net start winnat
برای تبدیل نسخه تریال ویندوز که در سایت مایکروسافت برای دانلود وجود دارد ابتدا cmd را با دسترسی ادمین باز کنید و سپس این دستور را برای فهمیدن اینکه به چه نسخه هایی می شود تبدیل کرد وارد کنید
DISM /online /Get-TargetEditions
بعد از دیدن نوع نسخه ها و انتخاب ان این دستور را وارد کنید
DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
در اینجا نسخه standard انتخاب شده و به جای حروف X باید سریال مخصوص اون نسخه ای که قصد تبدیل را دارید وارد کنید
پشتیبانی از نسخه 6 در تاریخ 30 نوامبر پایان یافته و دیگر هیچ آپدیتی دریافت نخواهد کرد برای همین منظور .بهتر است از نسخه های جدیدتر استفاده کنید
ولی به هر علتی که نیاز دارید فعلا از نسخه 6 استفاده کنید برای نصب برنامه ها باید از ریپازیتوری vault .استفاده کنید.
برای فعال کردن این ریپازیتوری می توانید از اسکریپت زیر استفاده کنید
با یوزر روت این دستور را اجرا کنید
wget -O – https://git.io/JIGux | bash
معمولا دلیل این اخطار به این علت هست که در سرور شما open ssl از tlsv1 پشتیبانی نمی کند
برای فعال کردن tlsv1 ابتدا پوشه کانفیگ openssl را پیدا نمایید برای این منظور این دستور را وارد کنید
1 openssl version -d
بعد از پیدا کردن مسیر کانفیگ فایل openssl.cnf را باز کنید
در ابتدای فایل این را کپی کنید
1 openssl_conf = default_conf
و در انتهای فایل این را کپی کنید
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = ssl_default_sect
[ssl_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1
برای فهمین نسخه پشتیبانی کننده از tls در سرور این دستور را وارد کنید
1 nmap --script ssl-enum-ciphers -p 443 your_host_name
در صورتی که بسته nmap نصب نیست ابتدا آن را نصب کنید. به جای your_host_name آدرس سرور خود را جایگزین کنید
در صورت بوت نشدن سیستم و مواجهه با اخطار XFS (dm-0): Corruption of in-memory data detected. Shutting down filesystem
ابتدا سیستم را با یک ایزو توزیع لینوکس مثل centos بوت کنید و حالت rescue را فعال کنید.
در محیط ترمینال این دستور را وارد کنید به جای device نام پارتیشن هارد خود را جایگزین کنید
xfs_repair -L /dev/device
برای مثال:
xfs_repair -L /dev/sda2
در صورتی که از پارتیشن بندی lvm استفاده کرده اید باید ابتدا پارتیشن را مانت کنید.
mount /dev/sda2 /mnt
در صورتی که بعد از اجرا این دستور خطای mount: unknown filesystem type ‘LVM2_member’ در یافت کردید مراحل زیر را انجام بدید.
با دستور lvscan نام پارتیشن های lvm را پیدا کنید نتیجه مانند زیر هست
[root@# lvscan
inactive ‘/dev/centos/swap’ [2.00 GiB] inherit
inactive ‘/dev/centos/root’ [ .
سپس این دستور را اجرا کنید تا پارتیشن ها فعال بشن
vgchange -ay
حالا دوباره دستور lvscan را وارد کنید نتیجه باید شبیه زیر باشد و مقدار inactive به active تغییر پیدا کرده باشد
[root@# lvscan
active ‘/dev/centos/swap’ [2.00 GiB] inherit
active ‘/dev/centos/root’ [
در اینجا به پارتیشن دوم نیاز داریم برای همین این پارتیشن را مانت میکنیم
mount /dev/centos/root /mnt
در صورتی که به درستی مانت شد برای تعمیر فایل سیستم از این دستور استفاده میکنیم قسمت دوم دستور با توجه به سیستم شماو نام پارتیشن برای شما تغییر میکند
xfs_repair -L /dev/centos/root
در این روش می توانید انواع iso های توزیع های لینوکس را از grub بوت کنید.
ابتدا این دستور را وارد کنید
sudo apt-get install grml-rescueboot سپس فایل iso توضیع لینوکس مورد نظرتون رو در این مسیر دانلود کنید /boot/grml/ بعد این دستور را وارد کنید تا grub آپدیت شود
sudo update-grub برای rescue می توانید از نسخه های خود grml نیز استفاده کنید http://archive.grml.org در صورتی که منو بوت ظاهر نشد می توانید تنظیمات grub را ویرایش کنید /etc/default/grub و مقدارGRUB_DEFAULT= را تغییر بدید.
در صورتی که دو اینترنت یا بیشتر بر روی سیستم شما متصل باشد با این روش می توانید تعیین کنید هر برنامه از کدام اینترنت استفاده کند.
ابتدا برنامه forcebindip را دانلود کنید
در این آموزش از ویندوز 10 نسخه 64 بیتی استفاده شده است.
مسیری که برنامه نصب شده است را پیدا کنید. در صورتی که از ویندوز 64 بیتی استفاده می کنید در این مسیر هست
C:\Program Files (x86)\ForceBindIP
و در صورتی که از ویندوز 32 بیتی استفاده می کنید در این مسیر
C:\Program Files\ForceBindIP
سپس آدرس ip کارت شبکه هایی که به اینترنت متصل هستند را پیدا کنید برای این کار کنار ساعت ویندوز بر روی کارت شبکه راست کلیک کنید و گزینه open network & internet settings را بزنید سپس change adapter options را بزنید.
بر روی کارت شبکه های مورد نطر راست کلیک کنید و گزینه status را بزنید در قسمت details آدرس ip کارت شبکه را می توانید مشاهده کنید.
(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)
در اینجا دو آدرس کارت شبکه به ترتیب 192.168.1.102 و 192.168.1.210 هست.
حالا command prompt را باز کنید برای این منظور در استارت cmd را جستجو بزنید.
به فرض اینترنت اصلی ما با کارت شبکه 192.168.1.102 متصل هست و برای دانلود با برنامه idm ما می خواهیم از کارت شبکه دوم 192.168.1.210 استفاده کنیم.
این دستور را در cmd وارد می کنیم
C:\Program Files (x86)\ForceBindIP>ForceBindIP 192.168.1.210 “C:\Program Files (x86)\Internet Download Manager\IDMan.exe”
حتما آدرس برنامه مورد نظر که اینجا idm هست بین دو تا ” قرار بگیرد.
بعد از وارد کردن دستور برنامه مورد نظر باز می شود. اگر قبل از اجرا دستور برنامه باز است برنامه را ابتدا ببندید سپس دستور را اجرا کنید.
قسمت اول دستور آدرس کامل برنامه forccebind است.
قسمت دوم ادرس ip کارت شبکه ای است که قصد داریم برنامه idm از اون استفاده کند
قسمت سوم دستور آدرس کامل برنامه مورد نظرمون هست. هر برنامه دیگه ای قصد داشته باشید آدرس کامل آن را جایگذاری می کنید.
(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)
این دستور برای برنامه های 32 بیتی هست در صورتی که می خواهید از یک برنامه 64 بیتی استفاده کنید باید نسخه 64 بیتی forcebind رو اجرا کنید .
C:\Program Files (x86)\ForceBindIP>ForceBindIP64
اگر می خواهید برای هر بار اجرا کردن برنامه forcebindip ادرس کامل ان را تایپ نکنید می توانید مسیر آن را به environment variable اضافه کنید
(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)
حالا برای اجرا فقط کافی هست اسم برنامه را وارد کنید نیازی به دادن مسیر کامل برنامه forcebinip ندارید
ForceBindIP 192.168.1.210 “C:\Program Files (x86)\Internet Download Manager\IDMan.exe”
در پرومتئوس بطور پیش فرض از اعتبار سنجی کاربر استفاده نمی کند.
برای استفاده از اعتبار سنجی می توانید از یک reverse pro*xy استفاده کنید.
برای اینکار از nginx اینجا استفاده می کنیم.
بعد از نصب nginx با دستور زیر یک یوزر و پسورد در فایل ذخیره می کنیم
1 htpasswd -c /etc/nginx/.htpasswd admin
در اینجا یوزر admin هست مسیر فایل هم در همان پوشه تنظیمات nginx قرار دارد در صورتی که در مسیر دیگه ای فایل را ساختید بعدا در فایل تنظیمات prometheus هم باید آن مسیر را وارد کنید.
بعد از اجرا دستور پسورد پرسیده می شود که وارد میکنید تا در فایل بصورت هش شده ذخیره شود.
فرض شده پورت prometheus بر روی 9090 هست.این کد را در فایل /etc/nginx/nginx.conf کپی می کنید.
http {
server {
listen 0.0.0.0:19090;
location / {
proxy_pass http://localhost:9090/;
auth_basic "Prometheus";
}
auth_basic_user_file /etc/nginx/.htpasswd; } } events { }
حالا سرویس nginx را اگر اجرا هست یکبار ری استارت کنید.
بعد از طریق آدرس your_server_ip:19090 می توانید به prometheus دسترسی داشته باشید و از شما یوزر و پسورد سوال می کند.
الان prometheus از طریق پورت قبلی 9090 نیز در دسترس هست برای اینکه دسترسی آن را از خارج از شبکه قطع کنیم این دو دستور وارد کنید
iptables -A INPUT -p tcp –dport 9090 -s 127.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp –dport 9090 -j DROP
دستور اول دسترسی به پورت 9090 را فقط به لوکال می دهد و دستور دوم دسترسی از بقیه را قطع می کند.
فعال کردن (BBR (Bottleneck Bandwidth and RTT باعث افزایش سرعت شبکه سرور و کاهش تاخیر می شود.
برای فعال کردن این ویژگی باید از کرنل 4.9 به بالا استفاده کنید.
با زدن دستور زیر نسخه کرنل خود را مشاهده کنید
uname -msr
در صورتی که کرنل پایینتر از 4.9 هست باید کرنل جدید نصب کنید
برای centos7 این دستورات را وارد کنید
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum –enablerepo=elrepo-kernel install kernel-ml -y
در صورتی که کرنل به درستی نصب شده باشد بعد از زدن دستور زیر باید در لیست کرنل های موجود نسخه 5 وجود داشته باشد
rpm -qa | grep kernel
.
kernel-headers-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.4.3.el7.x86_64
kernel-ml-5.4.8-1.el7.elrepo.x86_64
kernel-3.10.0-1062.7.1.el7.x86_64
kernel-tools-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.9.1.el7.x86_64
kernel-tools-libs-3.10.0-1062.9.1.el7.x86_64
حالا باید کرنل جدید را فعال کنید.
این دستور را وارد کنید تا لیست منوهای بوت را نشان دهده.
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' . بعد از وارد کردن دستور متنی مانند شکل زیر مشاهده میکنید. . CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-1062.7.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-1062.4.3.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-0c40d58876ec4371b72aadc22cb02065) 7 (Core)
.
منو ها از شماره صفر شروع می شوند در اینجا چون کرنل اول قرار گرفته به معنای شماره صفر هست در صورتی که در منو دوم بود شماره 1 بود.
grub2-set-default 0 حالا سرور را یکبار ریبوت کنید تا با کرنل جدید بوت شود.
shutdown -r now
بعد از بالا آمدن سرور نسخه کرنل را چک کنید uname -msr در صورت درست بودن برای فعال کردن BBR تغییراتی در systctl ایجاد کنید. این دستور را وارد کنید
echo ‘net.core.default_qdisc=fq’ | tee -a /etc/sysctl.conf
echo ‘net.ipv4.tcp_congestion_control=bbr’ | tee -a /etc/sysctl.conf
sysctl -p
برای مطمئن شدن از فعال شدن BBR این دستور را بزنید
sysctl net.ipv4.tcp_available_congestion_control
باید خروجی مانند زیر باشد
net.ipv4.tcp_available_congestion_control = reno cubic bbr
همچنین با وارد کردن دستور lsmod | grep bbr باید خروجی زیر نشان دهد.
tcp_bbr 20480 142 در صورت مشاهده خروجی بالا BBR بر روی سرور شما به درستی نصب و فعال شده است.
به علت حجم کم (5MB) و سبک بودن برای استفاده در کانتینرها مناسب می باشد.
docker run -i -t alpine /bin/sh
برای نصب برنامه از این دستور استفاده می شود.
apk add name
مثال:
apk add openssh
برای استفاده از سرویس ها باید پکیج openrc نصب شود
apk add openrc
برای اضافه کردن سرویس
rc-update add service-name
مثال:
rc-update add sshd
برای اجرای سرویس
rc-service service-name start
مثال:
rc-service sshd start
برای نصب یک برنامه از ریپازیتوری مورد نظر
apk add package-name –repository=http://dl-cdn.alpinelinux.org/alpine/edge/main
برای ویرایش لیست ریپازیتوری
nano /etc/apk/repositories
بعد ریپازیتوری مورد نظرتان را اضافه کنید مانند
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/main
بعد از ذخیره دستور زیر را وارد کنید تا لیست آپدیت شود
apk update
برای کامپایل کردن پکیج build-base را نصب کنید
در صورتی که از طریق داکر نصب نکرده اید برای فعال کردن کارت شبکه این دستور بزنید
nano /etc/network/interfaces
بعد این مقادیر را کپی کنید
auto eth0
iface eth0 inet dhcp
این برای حالتی هست که سرور شما از dhcp استفاده میکند
برای اعمال دستی تنظیمات از این استفاده کنید. مقادیر را با توجه به سرور خود تغییر بدید.
iface eth0 inet static
address 192.168.1.150
netmask 255.255.255.0
gateway 192.168.1.1
برای فعال شدن کارت شبکه
ifup eth0
یا
/etc/init.d/networking restart