JIT
Greeting to Jiti in Persian
salam jiti joon khoobi

Salam! How can I help you today?

من میخوام ایپی اوبونتو سرور رو تغییر بدم . چیکار کنم ؟

برای تغییر IP اوبونتو سرور، راههای مختلفی وجود داره. اول بررسی کنید کدوم روش پیکربندی دارید:

برای تغییر IP اوبونتو سرور، روش‌های مختلفی وجود داره. اول بررسی کنید کدوم روش پیکربندی دارید:

اگر از Netplan استفاده می‌کنید:

  1. فایل /etc/netplan/ رو پیدا کنید (مثلاً 01-netcfg.yaml)
  2. فایل رو ویرایش کنید و IP جدید رو تنظیم کنید

اگر از interfaces استفاده می‌کنید:

  1. فایل /etc/network/interfaces رو ویرایش کنید

روش سریع با nmcli:

nmcli con mod "ethernet-connection" ipv4.addresses 192.168.1.100/24
nmcli con mod "ethernet-connection" ipv4.gateway 192.168.1.1
nmcli con mod "ethernet-connection" ipv4.dns 8.8.8.8
nmcli con up "ethernet-connection"

کدوم روش رو ترجیح می‌دید؟

netplan رو تغییر میدم سیو میکنم ، ولی پینگ گیت وی رو نمیگیره . ری استارت هم که میکنم دوباره برمیکرده به حالت قبل network: ethernets: ens160: addresses: - 172.16.11.12/24 gateway4: 172.16.11.1 nameservers: addresses: - 172.16.11.1 search: [] version: 2

بیایید مشکل رو بررسی کنیم. اول فایل‌های Netplan فعلی رو ببینیم:

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

مشکل احتمالاً اینه که Netplan فایل شما اصلاً اعمال نشده یا فایل اشتباهی دارید. اول باید بررسی کنیم:

  1. بررسی وجود فایل Netplan:

    sudo ls -la /etc/netplan/
    
  2. بررسی صحت فایل:

    sudo netplan try
    
  3. بررسی اعمال تنظیمات:

    sudo netplan apply
    

راه حل: اگر فایل Netplan وجود نداره، باید ایجادش کنید:

Write file
Updated files
v1
jafar@self-host:~$ sudo netplan apply [sudo] password for jafar: WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.

این هشدار مربوط به Open vSwitch هست و مشکل اصلی نیست. حالا IP رو چک کنید:

اگر بازم مشکل دارید، این مراحل رو دنبال کنید:

  1. Netplan رو مجددا اعمال کنید:

    sudo netplan apply
    
  2. سیستم رو ری‌استارت کنید:

    sudo reboot
    
  3. پس از ری‌استارت، تنظیمات رو چک کنید:

    ip addr show ens160
    ip route show
    ping 172.16.11.1
    

اگه بازم کار نکرد، احتمالا مشکل از interface name هست. ببینید interface واقعی کجاست:

اگر interface name مشکل داره، فایل Netplan رو با interface صحیح ویرایش کنید.

نکته: هشدار Open vSwitch رو می‌تونید نادیده بگیرید، اون فقط مربوط به شبکه مجازی می‌شه و مشکل IP ایجاد نمی‌کنه.

jafar@self-host:~$ ip addr show ens34 2: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:06:07:4a brd ff:ff:ff:ff:ff:ff altname enp2s2 inet 172.16.11.13/24 brd 172.16.11.255 scope global ens34 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe06:74a/64 scope link valid_lft forever preferred_lft forever jafar@self-host:~$ ip route show default via 172.16.11.1 dev ens34 proto static 172.16.11.0/24 dev ens34 proto kernel scope link src 172.16.11.13 jafar@self-host:~$ ping 172.16.11.1 PING 172.16.11.1 (172.16.11.1) 56(84) bytes of data. 64 bytes from 172.16.11.1: icmp_seq=1 ttl=64 time=0.251 ms 64 bytes from 172.16.11.1: icmp_seq=2 ttl=64 time=0.361 ms ^C --- 172.16.11.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1009ms rtt min/avg/max/mdev = 0.251/0.306/0.361/0.055 ms

مشکل مشخص شد! Interface شما ens34 هست نه ens160. IP 172.16.11.13 اعمال شده و گیت وی رو پینگ می‌کنه.

فایل Netplan رو باید با interface صحیح ویرایش کنید:

Read file
Edit file

حالا Netplan رو اعمال کنید:

حالا چک کنید IP تغییر کرده یا نه:

مشکل این بود که interface name اشتباه بود (ens160 به جای ens34). الان باید IP 172.16.11.12 اعمال بشه. اگر بازم IP قبلی (172.16.11.13) نمایش داده میشه، سیستم رو ری‌استارت کنید.

برای ری‌استارت:

sudo reboot
Updated files
v2
jafar@self-host:~/Projects/Python/urlshortener$ sudo pip install -r requirements.txt Traceback (most recent call last): File "/usr/bin/pip", line 11, in <module> load_entry_point('pip==20.0.2', 'console_scripts', 'pip')() File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main command = create_command(cmd_name, isolated=("--isolated" in cmd_args)) File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command module = importlib.import_module(module_path) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 24, in <module> from pip._internal.cli.req_command import RequirementCommand File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module> from pip._internal.index.package_finder import PackageFinder File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module> from pip._internal.index.collector import parse_links File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 12, in <module> from pip._vendor import html5lib, requests ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)

این مشکل مربوط به نسخه قدیمی pip و html5lib هست. برای حلش: