خطای Permission denied (WSAEACCES) هنگام پورت بایندینگ

بدون نظر

دلیل این خطا به علت رزرو پورت ها توسط hyper-v می باشد

برای حل این مشکل این دستورات را وارد کنید

در اینجا پورت مورد نظرمون 8080 است

net stop winnat

netsh int ipv4 add excludedportrange protocol=tcp startport=8080 numberofports=1

net start winnat


تبدیل نسخه ویندوز سرور trial

بدون نظر

برای تبدیل نسخه تریال ویندوز که در سایت مایکروسافت برای دانلود وجود دارد ابتدا cmd را با دسترسی ادمین باز کنید و سپس این دستور را برای فهمیدن اینکه به چه نسخه هایی می شود تبدیل کرد وارد کنید

 DISM /online /Get-TargetEditions

بعد از دیدن نوع نسخه ها و انتخاب ان این دستور را وارد کنید

DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula

در اینجا نسخه standard انتخاب شده و به جای حروف X باید سریال مخصوص اون نسخه ای که قصد تبدیل را دارید وارد کنید


حل مشکل yum در centos6 به علت پایان یافتن پشتیبانی از این نسخه

بدون نظر

پشتیبانی از نسخه 6 در تاریخ 30 نوامبر پایان یافته و دیگر هیچ آپدیتی دریافت نخواهد کرد برای همین منظور .بهتر است از نسخه های جدیدتر استفاده کنید

ولی به هر علتی که نیاز دارید فعلا از نسخه 6 استفاده کنید برای نصب برنامه ها باید از ریپازیتوری vault .استفاده کنید.

برای فعال کردن این ریپازیتوری می توانید از اسکریپت زیر استفاده کنید

با یوزر روت این دستور را اجرا کنید

wget -O – https://git.io/JIGux | bash


:SSL routines:ssl3_get_record:wrong version number

بدون نظر

معمولا دلیل این اخطار به این علت هست که در سرور شما 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

بدون نظر

در صورت بوت نشدن سیستم و مواجهه با اخطار XFS (dm-0): Corruption of in-memory data detected. Shutting down filesystem

xfs

ابتدا سیستم را با یک ایزو توزیع لینوکس مثل 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 نسخه های لینوکس از روی هارد در اوبونتو

بدون نظر

در این روش می توانید انواع 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 کارت شبکه را می توانید مشاهده کنید.

network

(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)

در اینجا دو آدرس کارت شبکه به ترتیب 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 از اون استفاده کند

قسمت سوم دستور آدرس کامل برنامه مورد نظرمون هست. هر برنامه دیگه ای قصد داشته باشید آدرس کامل آن را جایگذاری می کنید.

cmd

(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)

این دستور برای برنامه های 32 بیتی هست در صورتی که می خواهید از یک برنامه 64 بیتی استفاده کنید باید نسخه 64 بیتی forcebind رو اجرا کنید .

C:\Program Files (x86)\ForceBindIP>ForceBindIP64

اگر می خواهید برای هر بار اجرا کردن برنامه forcebindip  ادرس کامل ان را تایپ نکنید می توانید مسیر آن را به environment variable اضافه کنید

env

(برای مشاهده عکس در اندازه واقعی بر روی آن کلیک کنید.)

حالا برای اجرا فقط کافی هست اسم برنامه را وارد کنید نیازی به دادن مسیر کامل برنامه forcebinip ندارید

ForceBindIP 192.168.1.210 “C:\Program Files (x86)\Internet Download Manager\IDMan.exe”


فعال کردن تایید اعتبار در prometheus

بدون نظر
در پرومتئوس بطور پیش فرض از اعتبار سنجی کاربر استفاده نمی کند.
برای استفاده از اعتبار سنجی می توانید از یک 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 را فقط به لوکال می دهد و دستور دوم دسترسی از بقیه را قطع می کند.


 
    
    
    

فعال کردن Google BBR

بدون نظر

فعال کردن (BBR (Bottleneck Bandwidth and RTT باعث افزایش سرعت شبکه  سرور و کاهش تاخیر می شود.

ezgif.com-resize (1)

برای فعال کردن این ویژگی باید از کرنل 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 بر روی سرور شما به درستی نصب و فعال شده است.














لینوکس Alpine

بدون نظر

alpine
به علت حجم کم (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