<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dal</title>
    <description>The latest articles on DEV Community by Dal (@dalroot).</description>
    <link>https://dev.to/dalroot</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4136780%2F691603e1-0fdb-421c-ac61-832067f47994.jpg</url>
      <title>DEV Community: Dal</title>
      <link>https://dev.to/dalroot</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dalroot"/>
    <language>en</language>
    <item>
      <title>نجات سرور لینوکس پس از تعویض IP: از خاموشی کامل SSH تا روتینگ 32/ با کنسول VNC</title>
      <dc:creator>Dal</dc:creator>
      <pubDate>Thu, 24 Sep 2026 21:40:38 +0000</pubDate>
      <link>https://dev.to/dalroot/njt-srwr-lynwkhs-ps-z-twyd-ip-z-khmwshy-khml-ssh-t-rwtyng-32-b-khnswl-vnc-o4l</link>
      <guid>https://dev.to/dalroot/njt-srwr-lynwkhs-ps-z-twyd-ip-z-khmwshy-khml-ssh-t-rwtyng-32-b-khnswl-vnc-o4l</guid>
      <description>&lt;p&gt;‏تعویض IP عمومی در سرورهای ابری قرار است یک کار روتین باشد؛ اما در ایمیج‌های سبک (Minimized Ubuntu)، این کار به‌راحتی می‌تواند سرور را ساعت‌ها از دسترس خارج کند.&lt;/p&gt;

&lt;p&gt;‏در این تجربه واقعی، پس از تغییر IP سرور توسط دیتاسنتر، دسترسی SSH به‌طور کامل قطع شد و پینگ سرور به صفر رسید. در ادامه، ریشه‌یابی فنی، تله‌های حین عیب‌یابی و نحوه رساندن شبکه به یک پیکربندی دائمی و پایدار را مرور می‌کنیم.&lt;/p&gt;




&lt;p&gt;‏### ۱. صورت‌مسئله: چرا بعد از تغییر IP همه‌چیز قطع شد؟&lt;br&gt;
‏* &lt;strong&gt;آی‌پی قبلی:&lt;/strong&gt; &lt;code&gt;2.26.48.117/32&lt;/code&gt;&lt;br&gt;
‏* &lt;strong&gt;آی‌پی جدید:&lt;/strong&gt; &lt;code&gt;193.222.99.171/32&lt;/code&gt;&lt;br&gt;
‏* &lt;strong&gt;گیت‌وی:&lt;/strong&gt; &lt;code&gt;10.0.0.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;‏دیتاسنتر آی‌پی جدید را در سوییچ‌های لایه هایپربایزر ست کرده بود، اما داخل سرور، سیستم‌عامل هنوز آی‌پی مرده قبلی را روی کارت شبکه &lt;code&gt;ens3&lt;/code&gt; نگه داشته بود. چون ابزارهایی مثل &lt;code&gt;cloud-init&lt;/code&gt;، &lt;code&gt;netplan&lt;/code&gt; و &lt;code&gt;NetworkManager&lt;/code&gt; روی سیستم نصب نبودند، هیچ سرویسی وجود نداشت که خودکار تغییرات را اعمال کند.&lt;/p&gt;

&lt;p&gt;‏از طرفی، وقتی ماسک شبکه &lt;code&gt;/32&lt;/code&gt; است، گیت‌وی (&lt;code&gt;10.0.0.1&lt;/code&gt;) خارج از رنج آی‌پی سرور قرار می‌گیرد و لینوکس خطای &lt;code&gt;Network is unreachable&lt;/code&gt; می‌دهد، مگر اینکه صریحاً فلگ &lt;code&gt;onlink&lt;/code&gt; تنظیم شود.&lt;/p&gt;



&lt;p&gt;‏### ۲. ورود اضطراری با VNC (خارج از شبکه / Out-of-Band)&lt;br&gt;
‏وقتی کارت شبکه خوابیده، SSH در دسترس نیست. تنها راه ورود، &lt;strong&gt;کنسول VNC پنل هاستینگ&lt;/strong&gt; است؛ یعنی دسترسی مستقیم به خروجی مانیتور و کیبورد سرور در سطح هایپربایزر، بدون نیاز به اینترنتِ داخل سرور.&lt;/p&gt;

&lt;p&gt;‏با دستور دستی شبکه موقتاً وصل شد:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;‏ip addr add 193.222.99.171/32 dev ens3
‏ip route add default via 10.0.0.1 dev ens3 onlink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;‏اینترنت و SSH بلافاصله وصل شدند، اما این دستورات فقط در رم زنده هستند و با ریبوت مجدد می‌پرند.&lt;/p&gt;




&lt;p&gt;‏### ۳. تله‌های حین دائمی‌سازی شبکه&lt;br&gt;
‏برای دائمی کردن تنظیمات سراغ &lt;code&gt;systemd-networkd&lt;/code&gt; رفتیم، اما دو چالش پیش آمد:&lt;br&gt;
‏1. &lt;strong&gt;خطای ساختاری فایل کانفیگ:&lt;/strong&gt; قراردادن دستور &lt;code&gt;GatewayOnLink=yes&lt;/code&gt; داخل سکشن &lt;code&gt;[Network]&lt;/code&gt; نامعتبر است و توسط هسته نادیده گرفته می‌شود. این دستور حتماً باید زیر سکشن &lt;code&gt;[Route]&lt;/code&gt; تعریف شود.&lt;br&gt;
‏2. &lt;strong&gt;تداخل فایل‌های قدیمی:&lt;/strong&gt; فایل قدیمی &lt;code&gt;/etc/network/interfaces&lt;/code&gt; و &lt;code&gt;/etc/hosts&lt;/code&gt; همچنان آی‌پی منسوخ قبلی را صدا می‌زدند و باعث ثبت دو آی‌پی هم‌زمان روی کارت شبکه می‌شدند.&lt;/p&gt;



&lt;p&gt;‏### ۴. راه‌حل نهایی و استاندارد&lt;br&gt;
‏ساخت فایل کانفیگ مستقل برای &lt;code&gt;systemd-networkd&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="c"&gt;# /etc/systemd/network/10-ens3.network
&lt;/span&gt;&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="nn"&gt;[Match]&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;ens3&lt;/span&gt;

&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="nn"&gt;[Network]&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;Address&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;193.222.99.171/32&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;DNS&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;8.8.8.8&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;DNS&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;1.1.1.1&lt;/span&gt;

&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="nn"&gt;[Route]&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;Gateway&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;10.0.0.1&lt;/span&gt;
&lt;span class="err"&gt;‏&lt;/span&gt;&lt;span class="py"&gt;GatewayOnLink&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;yes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;‏و پاکسازی ردپای آی‌پی قبلی:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;‏sed &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/2.26.48.117/193.222.99.171/g'&lt;/span&gt; /etc/hosts
‏sed &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/2.26.48.117/193.222.99.171/g'&lt;/span&gt; /etc/network/interfaces
‏ip addr del 2.26.48.117/32 dev ens3
‏systemctl restart systemd-networkd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;‏### ۵. معمای عدم پاسخ پینگ در Check-Host&lt;br&gt;
‏بعد از آنلاین شدن سرور و پایداری SSH، سایت‌های تست پینگ (مثل Check-Host) خطای ۱۰۰٪ Packet Loss می‌دادند؛ در حالی که فایروال محلی سرور (&lt;code&gt;iptables&lt;/code&gt;) کاملاً باز بود.&lt;/p&gt;

&lt;p&gt;‏&lt;strong&gt;علت:&lt;/strong&gt; فایروال لبه دیتاسنتر (Anti-DDoS Scrubbing) پکت‌های ورودی ICMP (پینگ) را قبل از رسیدن به سرور فیلتر می‌کند تا از حملات Flood جلوگیری کند. اعتبارسنجی واقعی سلامت سرور باید از طریق برقراری کانکشن‌های TCP (مثل پورت ۲۲ برای SSH یا پورت‌های وب) انجام شود که در این حالت تأخیر زیر ۱ میلی‌ثانیه را ثبت کردند.&lt;/p&gt;




&lt;p&gt;‏### 💡 درس‌های کلیدی برای ادمین‌ها:&lt;br&gt;
‏1. در سیستم‌های Minimized لینوکس فرض نکنید ابزارهای مدیریتی شبکه حاضرند؛ &lt;code&gt;systemd-networkd&lt;/code&gt; پایدارترین گزینه بومی است.&lt;br&gt;
‏2. گیت‌وی‌های ناهم‌نام در ساب‌نت &lt;code&gt;/32&lt;/code&gt; بدون فلگ &lt;code&gt;onlink&lt;/code&gt; مسیریابی نمی‌شوند.&lt;br&gt;
‏3. عدم پاسخ پینگ عمومی (ICMP) لزوماً به معنی قطعی سرور نیست؛ همیشه پورت‌های سرویس (TCP) را تست کنید.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>devops</category>
      <category>networking</category>
    </item>
    <item>
      <title>Integration Test - Automated Agent Connection</title>
      <dc:creator>Dal</dc:creator>
      <pubDate>Tue, 22 Sep 2026 04:28:42 +0000</pubDate>
      <link>https://dev.to/dalroot/integration-test-automated-agent-connection-30b8</link>
      <guid>https://dev.to/dalroot/integration-test-automated-agent-connection-30b8</guid>
      <description>&lt;h1&gt;
  
  
  Hello Dev.to
&lt;/h1&gt;

&lt;p&gt;This is an automated connectivity test post from agent integration.&lt;/p&gt;

</description>
      <category>test</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
