اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

تنظیمات IP Static و DNS - Gateway در Ubuntu

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مقاله تنظیمات IP Static و DNS - Gateway در Ubuntu

    Netplan یک ابزاری آسان، برای پیکربندی تنظیمات کارت شبکه در سیستم های لینوکس اوبونتو است (17-20-22) که توسط شرکت Canonical طراحی شده که شما میتوانید در نسخه Ubuntu Server/Desktop از طریق ترمینال استفاده کنید. فایل نت پلن بر پایه YAML میباشد که به زبان پایتون هست و بسیار کار کردن با آن ساده میباشد. سیستم عامل های Ubuntu نسل قدیم تنظیمات کارت شبکه در فایل /etc/network/interfaces انجام میشد که در ورژن های جدید با Netplan جایگزین شده است.


    ubuntu netplan












    در این آموزش شما نحوه تغییر ip آدرس در اوبونتو سرور با استفاده از Netplan را یاد خواهید گرفت. همچنین نحوه انجام تنظیمات Static IP Address و DHCP IP (داینامیک) به همراه تغییر DNS و Gateway توضیح داده خواهد شد. من از Ubuntu 22.04 استفاده میکنم ولی این آموزش را برای اوبونتوهای قدیمی تر (تا اوبونتو 17) هم میتوانید استفاده کنید.














    تغییر تنظیمات شبکه Ubuntu Server با استفاده از Netplan


    فایل تنظیمات کارت شبکه در مسیر /etc/netplan/*.yaml میباشد. اوبونتو سرور فایل تنظیمات Netplan در کرنل system-networkd را با نام 01-netcfg.yaml ایجاد میکند و اگر اوبونتو دسکتاپ دارید فایل تنظیمات Netplan در کرنل Network-Manager با نام 01-network-manager-all.yaml ایجاد میشود.



    اگر شما از Ubuntu Desktop استفاده میکنید داخل مسیر /etc/netplan یک فایلی با نام 01-network-manager-all.yaml وجود خواهد داشت که برای اینترفیس کارت شبکه اول شما میباشد. در صورتیکه کارت شبکه دومی هم داشته باشیم میتوان یک فایل دیگر با نام 02-network-manager-all.yaml ایجاد کرد که تنظیمات کارت شبکه دوم در این فایل انجام خواهد شد. نت پلن تنظیمات را به ترتیب عددی که هست اعمال خواهد کرد. این به این معنی هست که فایل 01 قبل از فایل 02 اعمال میشود.



    ابتدا نام اینترفیس کارت شبکه ای که قصد دارید کانفیگ فایل آنرا تغییر دهید پیدا کنید. نام اینترفیس ممکن است بر اساس نوع نصب و سخت افزار سیستم متفاوت باشد. برای پیدا کردن نام اینترفیس دستور ip a را همانند زیر تایپ کنید :
    کد PHP:
    root@linux-zone:~# ip a
    1lo: <LOOPBACK,UP,LOWER_UPmtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link
    /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1
    /8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 
    ::1/128 scope host
           valid_lft forever preferred_lft forever
    2
    ens160: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc mq state UP group default qlen 1000
        link
    /ether 00:50:56:88:e7:51 brd ff:ff:ff:ff:ff:ff
        altname enp3s0
        inet 185.173.106.42
    /24 brd 185.173.106.255 scope global ens160
           valid_lft forever preferred_lft forever
        inet6 2a05
    :9a00:1001:2:250:56ff:fe88:e751/64 scope global dynamic mngtmpaddr noprefixroute
           valid_lft 2591978sec preferred_lft 604778sec
        inet6 fe80
    ::250:56ff:fe88:e751/64 scope link
           valid_lft forever preferred_lft forever
    3
    ens192: <BROADCAST,MULTICASTmtu 1500 qdisc noop state DOWN group default qlen 1000
        link
    /ether 00:50:56:88:13:8a brd ff:ff:ff:ff:ff:ff
        altname enp11s0 


    ubuntu ip command

















    خروجی بالا نشان می دهد که کارت شبکه سرور ما با نام ens160 پیکربندی شده است که این مورد می تواند در سیستم شما متفاوت باشد. البته در اینجا من یک کارت شبکه دوم هم با نام ens192 دارم که هنوز آدرس ip به آن اختصاص داده نشده. همانطور که در بالاتر گفتیم فایل پیکربندی تنظیمات شبکه اوبونتو در مسیر /etc/netplan میباشد. با استفاده از دستور ls میتوانید محتویات داخل این دایرکتوری را مشاهده کنید.
    کد PHP:
    root@linux-zone:~# ls /etc/netplan/
    config.yaml
    root
    @linux-zone:~



    اگر میخواهید محتویات داخل فایل تنظیمات کارت شبکه خود را مشاهده کنید میتوانید با استفاده از دستور cat محتویات داخل آنرا در خروجی ترمینال پرینت کنید.
    کد PHP:
    root@linux-zone:~# cat /etc/netplan/config.yaml 


    Ubuntu Set static IP Address

















    ما فرض رو بر این میگیریم سناریوی داریم که نیاز هست IP Address Static روی سیستم Ubuntu خود تنظیم یا ip آدرس موجود را تغییر دهیم. برای این کار با استفاده از ادیتور متن لینوکسی مورد علاقه خود (مثل ویرایشگر vi/vim - nano) فایل تنظیمات کارت شبکه را باز کنید.
    کد PHP:
    # vim /etc/netplan/config.yaml 




    سپس کدهای زیر را داخل فایل تنظیمات شبکه جایگزین کنید. دقت داشته باشید که به جای ens160 شما باید نام اینترفیس کارت شبکه خود را وارد کنید. مطمئن شوید که آدرس IPv4 و آدرس IP گیت وی که در اختیار شما قرار دارد متعلق به همان شبکه باشد و از صحت آن مطمئن شوید. پس از اطمینان، محتوای فایل را ذخیره کرده و آن را ببندید.
    کد PHP:
    network:
      
    version2
      renderer
    networkd
      ethernets
    :
        
    ens160:
          
    addresses:
            - 
    185.173.106.42/24
          nameservers
    :
            
    addresses: [8.8.8.84.2.2.4]
          
    routes:
            - 
    to: default
              
    via185.173.106.1 




    نکته : فایل تنظیمات کارت شبکه YAML میباشد که به تورفتگی های خطوط بسیار حساس میباشد. برای همین به این مورد دقت کنید که بعد از انجام تنظیمات با خطا مواجه نشوید.



    Setting a Static IP in Ubuntu















    در تنظیمات بالا :

    ens160 : نام اینترفیس شبکه است.
    addresses : آدرس IPV4 خود را در اینجا باید وارد کنیم. ما می توانیم چندین آدرس را در اینجا اضافه کنیم که در جلوتر مثال میزنیم.
    nameservers : آدرس DNS های خود را در اینجا وارد میکنیم. 8.8.8.8 و 4.2.2.4 که دی ان اس های گوگل هستند میتوانید استفاده کنید.
    gateway : در نسخه های قدیم در قسمت gateway ما آدرس گیت وی سرور را وارد میکردیم. در نسخه های جدید netplan این منسوخ شده و توصیه میشود به جای gateway از آپشن routes برای ست کردن گیت وی سرور استفاده کنید.
    routes : برای تنظیم گیت وی در سیستم شما استفاده می شود.











    نحوه اضافه کردن Secondary IP در Ubuntu

    در صورتیکه سرور شما یک اینترفیس شبکه دارد این مرحله را نادیده بگیرید. اما ممکن است برای شما سناریویی رخ دهد که بخواید روی تنها اینترفیس کارت شبکه خود دو ip address به صورت همزمان ست کنید. برای این کار فایل کانفیگ تنظیمات کارت شبکه خود را باز کنید و در قسمت Addresses آدرس ip دوم خود را به فرمت زیر وارد کنید.
    کد PHP:
    network:
      
    version2
      renderer
    networkd
      ethernets
    :
        
    enp3s0:
          
    addresses:
            - 
    194.33.125.13/24
            
    185.83.114.187/24
          nameservers
    :
            
    addresses: [8.8.8.84.2.2.4]
          
    routes:
            - 
    to: default
              
    via194.33.125.1 


    اضافه کردن ip دوم در ubuntu
















    اما در صورتیکه شما دو کارت شبکه به همراه 2 آدرس ip داشته باشید و بخواهید روی هر اینترفیس کارت شبکه یک ip مجزا ست کنید، همانند آموزش بالا بعد از اینکه برای اینترفیس کارت شبکه اول خود تنظیمات ip را انجام دادید، همانطور که در اول مقاله به ان اشاره شد، در مسیر /etc/netplan یک فایل کانفیگ جدید برای کارت شبکه دوم خود ایجاد میکنیم و خطوط زیر را درون آن وارد و ذخیره میکنیم.
    کد PHP:
    network:
      
    version2
      renderer
    networkd
      ethernets
    :
        
    ens192:
          
    addresses:
            - 
    185.83.113.23/24
          nameservers
    :
            
    addresses: [8.8.8.84.2.2.4


    add second ip to second interface ubuntu
















    در اینجا من یک فایل کانفیگ جدید با نام 02-config.yaml برای اینترفیس کارت شبکه دوم خود ایجاد کردم. همچنین فراموش نکنید در قسمت ethernets حتما نام اینترفیس کارت شبکه دوم خود (برای من ens192 هست) را وارد کنید. فراموش نکنید که خطوط مربوط به route را باید حذف کنید که با خطا مواجه نشوید.



    در مسیر /usr/share/doc/netplan/examples یکسری فایل کانفیگ نمونه بر اساس سناریویی که دارید گذاشته شده که میتوانید استفاده کنید.
    کد PHP:
    root@linux-zone:~# ls /usr/share/doc/netplan/examples
    bonding_router.yaml               route_metric.yaml
    bonding
    .yaml                      source_routing.yaml
    bridge_vlan
    .yaml                  sriov_vlan.yaml
    bridge
    .yaml                       sriov.yaml
    dhcp_wired8021x
    .yaml              static_multiaddress.yaml
    dhcp
    .yaml                         static_singlenic_multiip_multigateway.yaml
    direct_connect_gateway_ipv6
    .yaml  static.yaml
    direct_connect_gateway
    .yaml       vlan.yaml
    infiniband
    .yaml                   vrf.yaml
    ipv6_tunnel
    .yaml                  vxlan.yaml
    loopback_interface
    .yaml           windows_dhcp_server.yaml
    modem
    .yaml                        wireguard.yaml
    network_manager
    .yaml              wireless.yaml
    offload
    .yaml                      wpa_enterprise.yaml
    openvswitch
    .yaml
    root
    @linux-zone:~



    مثلا اگر فایل static.yaml متحویات آنرا مشاهده کنید دقیقا همان تنظیماتی هست که روی اینترفیس کارت شبکه خود اعمال کردیم. برای انجام تنظیمات کارت شبکه بر اساس DHCP میتوانید از مثال فایل dhcp.yml کمک بگیرید. و سایر فایل های کانفیگی که برای نمونه قرار داده شده را جهت اطلاعات بیشتر میتوانید مطالعه کنید.







    تست تنظیمات کانفیگ فایل کارت شبکه

    قبل از اعمال تغییرات، ما باید فایل تنظیمات کارت شبکه خود را بررسی کنیم که خطایی نداشته باشد. برای تست تنظیمات شبکه خود میتوانید از دستور زیر استفاده کنید. اگر مشکلی وجود نداشته باشد دستور بالا پیغام accept the new configuration را برمیگرداند. در خروجی دستور کلید Enter را برای اعمال تغییرات فشار دهید. اگر فایل کانفیگ در تست مشکل داشته باشد بعد از 120 ثانیه به فایل کانفیگ قبلی برگردانده میشود.
    کد PHP:
    root@linux-zone:~# netplan try
    Do you want to keep these settings?


    Press ENTER before the timeout to accept the new configuration


    Changes will revert in 116 seconds
    Configuration accepted



    netplan debug


























    Restart سرویس Network در Ubuntu

    اکنون بعد از اینکه تست ها انجام شد و خطایی نداشتیم میتوانیم برای ریستارت کردن سرویس نتورک در اوبونتو سرور یا دسکتاپ از دستور netplan در Ubuntu استفاده کنید.
    کد PHP:
    # netplan apply 



    در مواردی که هرگونه خطایی دریافت کردید میتوانید برای جستجوی مشکل آنرا Debug کنید. برای اجرای دیباگ از دستور netplan با آپشن d استفاده کنید.
    کد PHP:
    # netplan -d apply 


    دستور netplan













    البته برای reset سرویس شبکه در اوبونتو از دستور زیر هم میتوان استفاده کرد. این دستور کلا اینترفیس نتورک را down/up (خاموش/روشن) میکنه. دقت کنید که هر دو دستور رو پشت سر هم وارد کنید که ارتباط شما با سرور قطع نشود.
    کد PHP:
    # ip link set ens160 down && ip link set ens160 up 










    بررسی آدرس ip address در Ubuntu

    اکنون برای بررسی اینکه آیا تنظیمات جدید با موفقیت اعمال شده باشند دستور زیر را اجرا کنید تا ip address را بررسی نمایید.
    کد PHP:
    root@linux-zone:~# ip a 



    در صورتیکه شما یک اینترفیس کارت شبکه داشته باشید و روی آن یک آدرس ip تعریف کرده باشید در خروجی فقط آدرس ip اینترفیس ens160 ست شده نمایش داده میشود.

    تنظیمات آی پی استاتیک در اوبونتو
















    اگر روی یک اینترفیس کارت شبکه دو عدد ip به صورت Private/Static روی آن ست شده باشد در خروجی دستور برای اینترفیس ens160 آدرس ip دوم آدرس نمایش داده میشود.



    تنظیم ip static در ubuntu
















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



    اضافه کردن ip دوم به کارت شبکه دوم در اوبونتو















    در خروجی دستور ip بالا تمام اینترفیس های شبکه نمایش داده میشود. شاید شما بخواهید فقط اطلاعات یک اینترفیس را مشاهده کنید که برای این کار از دستور زیر استفاده میکنیم.
    کد PHP:
    # ip a s dev ens160 


    همانطور که مشاهده میکنید در خروجی دستور تنها اطلاعات مربوط به اینترفیس ens160 نمایش داده میشود.
    کد PHP:
    root@linux-zone:~# ip a s dev ens160
    2ens160: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc mq state UP group default qlen 1000
        link
    /ether 00:50:56:88:e7:51 brd ff:ff:ff:ff:ff:ff
        altname enp3s0
        inet 185.173.106.42
    /24 brd 185.173.106.255 scope global ens160
           valid_lft forever preferred_lft forever
        inet6 2a05
    :9a00:1001:2:250:56ff:fe88:e751/64 scope global dynamic mngtmpaddr noprefixroute
           valid_lft 2591877sec preferred_lft 604677sec
        inet6 fe80
    ::250:56ff:fe88:e751/64 scope link
           valid_lft forever preferred_lft forever
    root
    @linux-zone:~




    در آخر هم ممکنه گهگاهی به جای دی ان اس های پابلیک گوگل (8.8.8.8) از DNS های دیگری استفاده کنید. در صورتیکه DNS ها را تغییر دادید برای بررسی وضعیت DNS در Ubuntu Server میتوانید از دستور resolvectl status استفاده کنید. البته من در اینجا تغییری روی ip مروبوط به DNS های خود انجام ندادم و از آپی پی های پابلیک گوگل استفاده میکنم ولی اگر شما تغییر داده باشید آدرس ip های جدید برای شما باید نمایش داده شود.
    کد PHP:
    root@linux-zone:~# resolvectl status
    Global
           
    Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
    resolv
    .conf modestub

    Link 2 
    (ens160)
        
    Current ScopesDNS
             Protocols
    : +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
    Current DNS Server
    8.8.8.8
           DNS Servers
    8.8.8.8 4.2.2.4

    Link 3 
    (ens192)
    Current Scopesnone
         Protocols
    : -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
    root
    @linux-zone:~






    همچنین توصیه میشود مقالات زیر را مطالعه بفرمایید :

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

    مدیریت، عیب یابی و رفع مشکلات شبکه برای یک سیس ادمین لینوکس




    هر گاه که Ubuntu Server یا Ubuntu Desktop داشتید میتوانید به آسانی برای تنظیم آی پی آدرس به صورت استاتیک و یا داینامیک و بدون نیاز به هر گونه تنظیمات پیچیده ای از ابزار نت پلن استفاده کنید. اکنون آدرس IP استاتیک در سیستم اوبونتو سرور/دسکتاپ شما تغییر داده شده است. فراموش نکنید نظرات خود را در غالب کامنت با ما به اشتراک بگذارید.



    موفق باشید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 05-28-2023, 02:48 AM.
    Instagram : https://www.instagram.com/iranlinuxforum

    Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X