روتبنگ روی سرور تانل برای سایت های ایرانی
xxamr opened this issue · 5 comments
سلام. ایا امکان ارایه اموزش برای این که بتونیم اگر از تانل استفاده میکنیم، ترافیکی که روی سرور ایران میاد را در صورتی که مقصد سایت ایرانی باشه، نفرستیم به سمت سرور خارج داشته باشبن؟
روتینگ روی سرور تانل به شکلی که ترافیک را تفکیک کنه.
مثلا روی سرور ایران x-ui بر زنیم و با دکمودور، فورواردینگ انجام بدیم. ولی ترافیک ایران را به سمت سرور اصلی نفرسته
سلام سوال منم هس اگه کسی میدونه راهنمایی کنه
درود دوستان
برای این کار چندین راه حل متفاوت هست ه میتوانید استفاده کنید
با استفاده کردن از دیتابیس GoIP & GeoSite برای ایران و قوانین iptables یا استفاده کردن از nginx یا تغییرات در JSON فایل پنل X-Ui
IRAN GeoIP & GeoSite
IRAN GeoIP & GeoSite
به عنوان مثال این تغییرات در تنظیمات پنل ایجاد میشه اگر به قوانین دیگهای هم نیاز دارید گید تا اونجایی که میشه راهنمایی میکنم.
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"domain": [
"regexp:.*\\.ir$", //ترافیک ایران مستقیم
"regexp:^.+\\.ir$", //ترافیک ایران مستقیم
"geosite:category-ir", //ترافیک ایران مستقیم
],
"outboundTag": "direct",
"type": "field"
},
{
"ip": [
"geoip:ir", //ترافیک ایران مستقیم
"geoip:private"
],
"outboundTag": "direct",
"type": "field"
},
{
"outboundTag": "blocked",
"protocol": [
"bittorrent"
],
"type": "field"
}
]
}
قوانین nginx
http {
...
geoip_country /path/to/IRgeoip.dat;
geosite /path/to/IRgeosite.dat;
server {
listen 80;
server_name example.com;
# Direct traffic from Iran to local connection
if ($geoip_country_code == IR) {
proxy_pass http://127.0.0.1:9200;
proxy_bind $server_addr;
} else {
# Proxy traffic from other countries
proxy_pass http://your_proxy_server;
}
}
}
@Phoenix-999
درود
میشه یکی از روش هارو مرحله به مرحله توضیح بدید؟
من تا حالا با nginix کار نکردم
مرحله 1: یک دایرکتوری برای ذخیره فایل های داده GeoIP و GeoSite ایجاد کنید
یک دایرکتوری برای ذخیره فایل های geoip.dat و geosite.dat ایجاد کنید:
sudo mkdir -p /etc/nginx/geoip-data
مرحله 2: فایل های داده GeoIP و GeoSite را دانلود کنید
فایل های geoip.dat و geosite.dat را از لینک های ارائه شده دانلود کنید:
sudo wget https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/release/geoip.dat -O /etc/nginx/geoip-data/geoip.dat
sudo wget https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/release/geosite.dat -O /etc/nginx/geoip-data/geosite.dat
مرحله 3: بسته های مورد نیاز را نصب کنید
بسته های مورد نیاز را نصب کنید:
sudo apt update
sudo apt install nginx
sudo apt install libmaxminddb-dev
مرحله 4: Nginx را برای استفاده از داده های GeoIP و GeoSite پیکربندی کنید
یک فایل /etc/nginx/conf.d/geoip.conf با محتوای زیر ایجاد کنید:
sudo nano /etc/nginx/conf.d/geoip.conf
محتوای زیر را در فایل قرار دهید
http {
geoip_country /etc/nginx/geoip-data/geoip.dat;
geoip_proxy 0;
geosite /etc/nginx/geoip-data/geosite.dat;
# Set a variable to detect if the client is from a forced-direct country/site
set $force_direct 0;
if ($geoip_country_code == IR) {
set $force_direct 1;
}
if ($geoip_private) {
set $force_direct 1;
}
if ($geoip_arvancloud) {
set $force_direct 1;
}
if ($geoip_derakcloud) {
set $force_direct 1;
}
if ($geoip_iranserver) {
set $force_direct 1;
}
if ($geoip_parspack) {
set $force_direct 1;
}
if ($geosite_ir) {
set $force_direct 1;
}
# Create a map to force direct connections
map $force_direct $direct_connection {
1 1;
default 0;
}
# Set the proxy settings
upstream proxy {
server localhost:8080; # your proxy server
}
# Create a server block to handle requests
server {
listen 80;
server_name example.com; # your server name
# Force direct connections for clients from forced-direct countries/sites
if ($direct_connection = 1) {
resolver localhost;
set $proxy_pass "";
}
# Proxy requests for all other clients
location / {
proxy_pass http://proxy;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
ذخیره و خروج از ویرایشگر متن
و Ctrl+X را برای خروج فشار دهید، سپس Y را فشار دهید تا تغییرات ذخیره شود و در نهایت Enter را فشار دهید تا نام فایل را تأیید کنید.
مرحله 5: Nginx را مجددا راه اندازی کنید
راه اندازی مجدد Nginx:
sudo service nginx restart
توجه: حتماً دستورالعمل server_name
را در فایل پیکربندی Nginx بهروزرسانی کنید تا با نام دامنه یا آدرس IP سرور شما
مطابقت داشته باشد.
@Phoenix-999
دمت گرم
الان با انجام اینکار روی سرور ایران بعدش سایت های داخلی از طریق سرور ایران لود میشه و ریکوئست ها به سمت سرور خارج نمیره درسته؟