<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alikaravi.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karavi</id>
	<title>wiki karavi - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alikaravi.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karavi"/>
	<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Special:Contributions/Karavi"/>
	<updated>2026-06-22T13:33:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173</id>
		<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173"/>
		<updated>2026-06-21T19:48:47Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to 6 MikroTik Routers (Template) ==&lt;br /&gt;
&lt;br /&gt;
=== IP Address Plan ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MIKROTIK_1_IP || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MIKROTIK_2_IP || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || MIKROTIK_3_IP || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003&lt;br /&gt;
|-&lt;br /&gt;
| 4 || MIKROTIK_4_IP || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004&lt;br /&gt;
|-&lt;br /&gt;
| 5 || MIKROTIK_5_IP || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005&lt;br /&gt;
|-&lt;br /&gt;
| 6 || MIKROTIK_6_IP || 10.0.6.1/30 || 10.0.6.2/30 || 106 || 206 || 1006 || 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== Step 1 — Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 2 — Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 3 — Verify modules loaded ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
lsmod | grep l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
l2tp_eth&lt;br /&gt;
l2tp_ip&lt;br /&gt;
l2tp_netlink&lt;br /&gt;
l2tp_core&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 4 — Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_1_IP:0&amp;quot;&lt;br /&gt;
  tid = 101&lt;br /&gt;
  ptid = 201&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1001&lt;br /&gt;
    psid = 2001&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t2]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_2_IP:0&amp;quot;&lt;br /&gt;
  tid = 102&lt;br /&gt;
  ptid = 202&lt;br /&gt;
  [tunnel.t2.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1002&lt;br /&gt;
    psid = 2002&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t3]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_3_IP:0&amp;quot;&lt;br /&gt;
  tid = 103&lt;br /&gt;
  ptid = 203&lt;br /&gt;
  [tunnel.t3.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1003&lt;br /&gt;
    psid = 2003&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t4]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_4_IP:0&amp;quot;&lt;br /&gt;
  tid = 104&lt;br /&gt;
  ptid = 204&lt;br /&gt;
  [tunnel.t4.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1004&lt;br /&gt;
    psid = 2004&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t5]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_5_IP:0&amp;quot;&lt;br /&gt;
  tid = 105&lt;br /&gt;
  ptid = 205&lt;br /&gt;
  [tunnel.t5.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1005&lt;br /&gt;
    psid = 2005&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t6]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_6_IP:0&amp;quot;&lt;br /&gt;
  tid = 106&lt;br /&gt;
  ptid = 206&lt;br /&gt;
  [tunnel.t6.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1006&lt;br /&gt;
    psid = 2006&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth6&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 5 — Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 6 — Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
ip addr add 10.0.6.1/30 dev l2tpeth6 &amp;amp;&amp;amp; ip link set l2tpeth6 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 7 — Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.6.1/30 dev l2tpeth6 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth6 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 8 — Verify interfaces ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip addr show | grep l2tpeth&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Setup (Run on each router) ===&lt;br /&gt;
&lt;br /&gt;
Replace the placeholder values from the table above for each MikroTik.&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 1 — &amp;lt;code&amp;gt;MIKROTIK_1_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_1_IP local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 2 — &amp;lt;code&amp;gt;MIKROTIK_2_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_2_IP local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 3 — &amp;lt;code&amp;gt;MIKROTIK_3_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_3_IP local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 4 — &amp;lt;code&amp;gt;MIKROTIK_4_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_4_IP local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 5 — &amp;lt;code&amp;gt;MIKROTIK_5_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_5_IP local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 6 — &amp;lt;code&amp;gt;MIKROTIK_6_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_6_IP local-tunnel-id=206 remote-tunnel-id=106 local-session-id=2006 remote-session-id=1006 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.6.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server — ping all clients:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.1.2 -c 2&lt;br /&gt;
ping 10.0.2.2 -c 2&lt;br /&gt;
ping 10.0.3.2 -c 2&lt;br /&gt;
ping 10.0.4.2 -c 2&lt;br /&gt;
ping 10.0.5.2 -c 2&lt;br /&gt;
ping 10.0.6.2 -c 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each MikroTik — ping server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.X.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
for i in 1 2 3 4 5 6; do ip link del l2tpeth$i 2&amp;gt;/dev/null; done&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running || &amp;lt;code&amp;gt;systemctl restart ql2tpd &amp;amp;&amp;amp; sleep 2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Verify &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is set&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || Persistence script missing || Re-run Step 7&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate or swapped IDs || Verify tid/ptid/sid/psid per table above&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replace all &amp;lt;code&amp;gt;SERVER_IP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MIKROTIK_X_IP&amp;lt;/code&amp;gt; placeholders with real IP addresses before running.&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; = server &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;remote-tunnel-id&amp;lt;/code&amp;gt; = server &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is mandatory on MikroTik — without it the control protocol runs and the tunnel will not connect to &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Tested on Ubuntu 24.04 (kernel 6.8) and RouterOS 7.20.&lt;br /&gt;
* No encryption by default — wrap with IPsec for production use.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172</id>
		<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172"/>
		<updated>2026-06-21T19:44:32Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==  === Overview ===  This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.  {| class=&amp;quot;wikitable&amp;quot; ! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid |- | 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000 |- | 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 ||...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid&lt;br /&gt;
|-&lt;br /&gt;
| 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 85.57.4.222 || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 85.57.4.223 || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 85.57.4.224 || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 85.57.4.225 || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Update ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;78.157.42.222:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t2]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.221:0&amp;quot;&lt;br /&gt;
  tid = 101&lt;br /&gt;
  ptid = 201&lt;br /&gt;
  [tunnel.t2.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1001&lt;br /&gt;
    psid = 2001&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t3]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.222:0&amp;quot;&lt;br /&gt;
  tid = 102&lt;br /&gt;
  ptid = 202&lt;br /&gt;
  [tunnel.t3.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1002&lt;br /&gt;
    psid = 2002&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t4]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.223:0&amp;quot;&lt;br /&gt;
  tid = 103&lt;br /&gt;
  ptid = 203&lt;br /&gt;
  [tunnel.t4.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1003&lt;br /&gt;
    psid = 2003&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t5]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.224:0&amp;quot;&lt;br /&gt;
  tid = 104&lt;br /&gt;
  ptid = 204&lt;br /&gt;
  [tunnel.t5.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1004&lt;br /&gt;
    psid = 2004&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t6]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.225:0&amp;quot;&lt;br /&gt;
  tid = 105&lt;br /&gt;
  ptid = 205&lt;br /&gt;
  [tunnel.t6.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1005&lt;br /&gt;
    psid = 2005&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Restart service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart ql2tpd&lt;br /&gt;
sleep 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 1 — &amp;lt;code&amp;gt;85.57.4.221&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.221 local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 2 — &amp;lt;code&amp;gt;85.57.4.222&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.222 local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 3 — &amp;lt;code&amp;gt;85.57.4.223&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.223 local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 4 — &amp;lt;code&amp;gt;85.57.4.224&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.224 local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 5 — &amp;lt;code&amp;gt;85.57.4.225&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.225 local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.1.2 -c 2&lt;br /&gt;
ping 10.0.2.2 -c 2&lt;br /&gt;
ping 10.0.3.2 -c 2&lt;br /&gt;
ping 10.0.4.2 -c 2&lt;br /&gt;
ping 10.0.5.2 -c 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.X.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not restarted || &amp;lt;code&amp;gt;systemctl restart ql2tpd&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Verify &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || persistence script not updated || Re-run step 4&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate tid/ptid/sid/psid || Verify IDs are unique per tunnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values.&lt;br /&gt;
* Each MikroTik&#039;s &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; must match the server&#039;s &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; for that tunnel, and vice versa.&lt;br /&gt;
* All tunnels share the same Linux server public IP (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) — this is supported since each tunnel is differentiated by its tunnel ID.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping tunnels with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=171</id>
		<title>Mikrotik Ubuntu L2TPv3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=171"/>
		<updated>2026-06-21T19:42:44Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: Linux to MikroTik ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Server !! Client&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Device&#039;&#039;&#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Public IP&#039;&#039;&#039; || 157.9.2.4 || 85.57.4.221&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel IP&#039;&#039;&#039; || 10.0.0.1/30 || 10.0.0.2/30&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel ID&#039;&#039;&#039; || 100 || 200&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Session ID&#039;&#039;&#039; || 1000 || 2000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 (kernel 6.8+)&lt;br /&gt;
* MikroTik RouterOS 7.20 or later&lt;br /&gt;
* Root access on both devices&lt;br /&gt;
* IP protocol 115 allowed in firewall on both sides&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.9.2.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.221:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. Assign tunnel IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0&lt;br /&gt;
ip link set l2tpeth0 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Persist IP after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Client Setup ===&lt;br /&gt;
&lt;br /&gt;
Run the following commands in the MikroTik terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.9.2.4 local-address=85.57.4.221 local-tunnel-id=200 remote-tunnel-id=100 local-session-id=2000 remote-session-id=1000 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
&lt;br /&gt;
/ip address add address=10.0.0.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is required. Without it, MikroTik attempts to run the L2TPv3 control protocol, which &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; does not support since it operates as a static (data-plane only) daemon.}}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.0.2 -c 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.0.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
ip link del l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running in background || Run with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or use systemd service&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Add &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || No persistence script || Add networkd-dispatcher script (step 6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; is a static (quiescent) L2TPv3 daemon — it does &#039;&#039;&#039;not&#039;&#039;&#039; run the L2TPv3 control protocol. Both peers must have matching tunnel and session IDs configured manually.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;l2tp-ether&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; bypasses the control protocol and operates as a pure static data plane, making it compatible with &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The tunnel carries raw Ethernet frames (pseudowire type: &amp;lt;code&amp;gt;eth&amp;lt;/code&amp;gt;), making it suitable for Layer 2 bridging between sites.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping the tunnel with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=170</id>
		<title>Mikrotik Ubuntu L2TPv3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=170"/>
		<updated>2026-06-21T19:38:06Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== L2TPv3 Tunnel: Linux to MikroTik ==  === Overview ===  This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.  {| class=&amp;quot;wikitable&amp;quot; ! !! Server !! Client |- | &amp;#039;&amp;#039;&amp;#039;Device&amp;#039;&amp;#039;&amp;#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+ |- | &amp;#039;&amp;#039;&amp;#039;Public IP&amp;#039;&amp;#039;&amp;#039; || 157.90.26.4 || 78.157.42.222 |- | &amp;#039;&amp;#039;&amp;#039;Tunnel IP&amp;#039;&amp;#039;&amp;#039; || 10.0.0.1/30 || 10.0.0.2/30 |- | &amp;#039;&amp;#039;&amp;#039;Tunnel ID&amp;#039;&amp;#039;&amp;#039; || 100...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: Linux to MikroTik ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Server !! Client&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Device&#039;&#039;&#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Public IP&#039;&#039;&#039; || 157.90.26.4 || 78.157.42.222&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel IP&#039;&#039;&#039; || 10.0.0.1/30 || 10.0.0.2/30&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel ID&#039;&#039;&#039; || 100 || 200&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Session ID&#039;&#039;&#039; || 1000 || 2000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 (kernel 6.8+)&lt;br /&gt;
* MikroTik RouterOS 7.20 or later&lt;br /&gt;
* Root access on both devices&lt;br /&gt;
* IP protocol 115 allowed in firewall on both sides&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;78.157.42.222:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. Assign tunnel IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0&lt;br /&gt;
ip link set l2tpeth0 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Persist IP after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Client Setup ===&lt;br /&gt;
&lt;br /&gt;
Run the following commands in the MikroTik terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=78.157.42.222 local-tunnel-id=200 remote-tunnel-id=100 local-session-id=2000 remote-session-id=1000 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
&lt;br /&gt;
/ip address add address=10.0.0.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is required. Without it, MikroTik attempts to run the L2TPv3 control protocol, which &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; does not support since it operates as a static (data-plane only) daemon.}}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.0.2 -c 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.0.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
ip link del l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running in background || Run with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or use systemd service&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Add &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || No persistence script || Add networkd-dispatcher script (step 6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; is a static (quiescent) L2TPv3 daemon — it does &#039;&#039;&#039;not&#039;&#039;&#039; run the L2TPv3 control protocol. Both peers must have matching tunnel and session IDs configured manually.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;l2tp-ether&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; bypasses the control protocol and operates as a pure static data plane, making it compatible with &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The tunnel carries raw Ethernet frames (pseudowire type: &amp;lt;code&amp;gt;eth&amp;lt;/code&amp;gt;), making it suitable for Layer 2 bridging between sites.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping the tunnel with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=169</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=169"/>
		<updated>2026-04-27T09:56:41Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
روش استفاده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== for loca server ==&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
** add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
** view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=168</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=168"/>
		<updated>2026-04-27T09:55:31Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== for loca server ==&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
# add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
### view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=167</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=167"/>
		<updated>2026-04-27T09:52:15Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
### add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#### run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
##### view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=166</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=166"/>
		<updated>2026-04-27T09:49:45Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
##for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
###add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
####run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
#####view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=165</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=165"/>
		<updated>2026-04-27T09:48:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
#add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=164</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=164"/>
		<updated>2026-04-27T09:47:14Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
#add dns to list in file&lt;br /&gt;
&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=163</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=163"/>
		<updated>2026-04-05T17:52:56Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
update &lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
env&lt;br /&gt;
  python -m venv ./venv&lt;br /&gt;
&lt;br /&gt;
Active windows&lt;br /&gt;
 venv\Scripts\activate&lt;br /&gt;
&lt;br /&gt;
Active ubuntu&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
install requirements&lt;br /&gt;
 pip install --upgrade -r requirements.txt&lt;br /&gt;
JupyterLab&lt;br /&gt;
 pip install jupyterlab&lt;br /&gt;
 jupyter lab&lt;br /&gt;
&lt;br /&gt;
Jupyter Notebook&lt;br /&gt;
 pip install notebook&lt;br /&gt;
 jupyter notebook&lt;br /&gt;
&lt;br /&gt;
Homebrew&lt;br /&gt;
Homebrew is a package manager for macOS and Linux. You can use it to install Jupyter by running:&lt;br /&gt;
 brew install jupyterlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upgrade python&lt;br /&gt;
 choco upgrade python -y&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=162</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=162"/>
		<updated>2026-04-05T17:45:13Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
update &lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
env&lt;br /&gt;
  python -m venv ./venv&lt;br /&gt;
&lt;br /&gt;
Active windows&lt;br /&gt;
 venv\Scripts\activate&lt;br /&gt;
&lt;br /&gt;
Active ubuntu&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
JupyterLab&lt;br /&gt;
 pip install jupyterlab&lt;br /&gt;
 jupyter lab&lt;br /&gt;
&lt;br /&gt;
Jupyter Notebook&lt;br /&gt;
 pip install notebook&lt;br /&gt;
 jupyter notebook&lt;br /&gt;
&lt;br /&gt;
Homebrew&lt;br /&gt;
Homebrew is a package manager for macOS and Linux. You can use it to install Jupyter by running:&lt;br /&gt;
 brew install jupyterlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upgrade python&lt;br /&gt;
 choco upgrade python -y&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=161</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=161"/>
		<updated>2026-02-17T07:13:23Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=160</id>
		<title>Mikrotik container</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=160"/>
		<updated>2026-01-29T07:17:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
فعال کردن کانتینر&lt;br /&gt;
 /system/device-mode/update container=yes&lt;br /&gt;
ریبوت سخت افزاری&lt;br /&gt;
&lt;br /&gt;
ساخت اینترفیس و نت&lt;br /&gt;
 /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1&lt;br /&gt;
&lt;br /&gt;
 /interface/bridge/add name=containers&lt;br /&gt;
 /ip/address/add address=172.17.0.1/24 interface=containers&lt;br /&gt;
 /interface/bridge/port add bridge=containers interface=veth1&lt;br /&gt;
&lt;br /&gt;
 /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
کامندها&lt;br /&gt;
&lt;br /&gt;
 /container/config/set registry-url=https://registry-1.docker.io tmpdir=/pull&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=teddysun/v2ray:latest interface=veth1 root-dir=/v2ray&lt;br /&gt;
&lt;br /&gt;
 container/shell 0&lt;br /&gt;
&lt;br /&gt;
سمپل یه کانفیگ سمت سرور&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/v2ray/config.json &amp;lt;&amp;lt;EOF&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;inbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;port&amp;quot;: 443,&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;vless&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {&lt;br /&gt;
        &amp;quot;clients&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;6B57824F-5F8B-407C-96F5-BD2D50F6BB45&amp;quot;,&lt;br /&gt;
            &amp;quot;flow&amp;quot;: &amp;quot;xtls-rprx-direct&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;decryption&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
        &amp;quot;fallbacks&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 80,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 0&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;alpn&amp;quot;: &amp;quot;h2&amp;quot;,&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 888,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 1&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;outbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#روش دیگر&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای دریافت تصویر کانتینر:&lt;br /&gt;
&lt;br /&gt;
 /tool/fetch url=https://example.com/container-image.tar dst-path=disk1/images/container-image.tar&lt;br /&gt;
سپس برای اجرای کانتینر:&lt;br /&gt;
 /container/add file=disk1/images/container-image.tar interface=veth1 root-dir=disk1/containers/container1&lt;br /&gt;
 /container/start 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای اجرای Pi-hole&lt;br /&gt;
 /container/add remote-image=pihole/pihole:latest interface=veth1 root-dir=disk1/pihole&lt;br /&gt;
 /container/start 0&lt;br /&gt;
&lt;br /&gt;
اجرای Home Assistant&lt;br /&gt;
برای اجرای Home Assistant:&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=homeassistant/home-assistant:latest interface=veth1 root-dir=disk1/homeassistant&lt;br /&gt;
 /container/start 0&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=159</id>
		<title>Mikrotik container</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=159"/>
		<updated>2026-01-29T07:05:29Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot; فعال کردن کانتینر  /system/device-mode/update container=yes ریبوت سخت افزاری  ساخت اینترفیس و نت  /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1   /interface/bridge/add name=containers  /ip/address/add address=172.17.0.1/24 interface=containers  /interface/bridge/port add bridge=containers interface=veth1   /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24   کامندها...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
فعال کردن کانتینر&lt;br /&gt;
 /system/device-mode/update container=yes&lt;br /&gt;
ریبوت سخت افزاری&lt;br /&gt;
&lt;br /&gt;
ساخت اینترفیس و نت&lt;br /&gt;
 /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1&lt;br /&gt;
&lt;br /&gt;
 /interface/bridge/add name=containers&lt;br /&gt;
 /ip/address/add address=172.17.0.1/24 interface=containers&lt;br /&gt;
 /interface/bridge/port add bridge=containers interface=veth1&lt;br /&gt;
&lt;br /&gt;
 /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
کامندها&lt;br /&gt;
&lt;br /&gt;
 /container/config/set registry-url=https://registry-1.docker.io tmpdir=/pull&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=teddysun/v2ray:latest interface=veth1 root-dir=/v2ray&lt;br /&gt;
&lt;br /&gt;
 container/shell 0&lt;br /&gt;
&lt;br /&gt;
سمپل یه کانفیگ سمت سرور&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/v2ray/config.json &amp;lt;&amp;lt;EOF&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;inbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;port&amp;quot;: 443,&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;vless&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {&lt;br /&gt;
        &amp;quot;clients&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;6B57824F-5F8B-407C-96F5-BD2D50F6BB45&amp;quot;,&lt;br /&gt;
            &amp;quot;flow&amp;quot;: &amp;quot;xtls-rprx-direct&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;decryption&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
        &amp;quot;fallbacks&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 80,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 0&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;alpn&amp;quot;: &amp;quot;h2&amp;quot;,&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 888,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 1&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;outbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=158</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=158"/>
		<updated>2025-12-24T05:56:14Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  place-before=0 comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input dst-port=80 protocol=tcp src-address-list=LetsEncrypt place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=157</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=157"/>
		<updated>2025-12-24T05:52:25Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input dst-port=80 protocol=tcp src-address-list=LetsEncrypt place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=156</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=156"/>
		<updated>2025-12-24T05:44:27Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port=80 protocol=tcp src-address-list=LetsEncrypt  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=155</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=155"/>
		<updated>2025-12-24T05:35:12Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;   I have created the address lists   /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt  /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt  /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt   I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:   /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port=80 protocol=tcp src-address-list=LetsEncrypt&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_wireless&amp;diff=154</id>
		<title>Mikrotik wireless</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_wireless&amp;diff=154"/>
		<updated>2025-11-29T05:33:24Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اسپکترال می تواند تمام فرکانس هایی که کارت وایرلس دستگاه شما پشتیبانی می کند را اسکن کند.&lt;br /&gt;
&lt;br /&gt;
به قسمت ترمینال دستگاه خود بروید و دستور زیر را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
Irmikro@MikroTik] interface wireless&lt;br /&gt;
&lt;br /&gt;
و پس از وارد شدن به مود وایرلس دستور زیر را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
Irmikro@MikroTik] /interface wireless&amp;gt; spectral-history range=5000-5900 number= 0&lt;br /&gt;
&lt;br /&gt;
در این قسمت شما میتوانید رنج مورد نظر خود را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
در این مثال رنج 5800-5000 انتخاب شده&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
یگنال خوبی داری 54 و56 خوبه میشه پهنای باند نسبتا خوبی گرفت ..&lt;br /&gt;
&lt;br /&gt;
وقتی bandwidth test گذاشتی نمیشه ccq دقیق رو مشاهده کرد test رو قطع کن و ccq رو ببین&lt;br /&gt;
&lt;br /&gt;
با تعویض پروتکل ها و قرار دادن روی nv2 میتونی تغییر قابل ملاحضه ای حس کنی&lt;br /&gt;
&lt;br /&gt;
رو wlan برو وتب HT رو بررسی کن که هر دو چنل فعال باشن&lt;br /&gt;
&lt;br /&gt;
هرچه قدر تنظیماتت محدود تر باشه نتیجه بهتری رو میبینید&lt;br /&gt;
&lt;br /&gt;
پس فرکانس های مورد استفاده رو محدود کن&lt;br /&gt;
&lt;br /&gt;
با استفاده از دستور spectral-History فرکانس مناسب در سمت اکسس پوینت رو پیدا کن و تنظیمات رو بر اساس اون انجام بده&lt;br /&gt;
&lt;br /&gt;
حتما wps رو روی هر دو آنتن غیر فعال کن&lt;br /&gt;
&lt;br /&gt;
به این نکته هم توجه کن که اسکن رو اگر در سمت مقابل که دسترسی فیزیکی بهش نداری بزنی اون رادیو از دسترس خارج میشه&lt;br /&gt;
&lt;br /&gt;
هر چه قدر فرکانسی که انتخاب میکنی تو محدوده تیره تر باشه پس فرکانسه بهتری هست&lt;br /&gt;
&lt;br /&gt;
بهترین فرکانس رنگ مشکی بعد آبی و...&lt;br /&gt;
&lt;br /&gt;
مثلا تو این نمونه فرکانس 5770 تا 5790 فرکانس های خوبی هستن&lt;br /&gt;
&lt;br /&gt;
دوباره همین رنج رو اسکن باید کرد تا دقیق بشه فهمید که از بین این بازه چه فرکانسی بهترینه..&lt;br /&gt;
&lt;br /&gt;
به این نکته توجه کن که حتما باید هنگام ست کردن فرکانس ها ،فرکانس طرف مقابل تو اسکن لیست باشه&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Git&amp;diff=153</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Git&amp;diff=153"/>
		<updated>2025-11-15T05:29:23Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== Git Commands ==  === 1. Setting &amp;amp; Creating Projects === {| class=&amp;quot;wikitable&amp;quot; |+ ! Command !! Description |- | &amp;lt;code&amp;gt;git init&amp;lt;/code&amp;gt; || Initialize a local Git repository |- | &amp;lt;code&amp;gt;git clone ssh://git@github.com/[username]/[repository-name].git&amp;lt;/code&amp;gt; || Create a local copy of a remote repository |}  === 2. Basic Snapshotting === {| class=&amp;quot;wikitable&amp;quot; |+ ! Command !! Description |- | &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || Check status |- | &amp;lt;code&amp;gt;git add [file-name.txt]&amp;lt;/code&amp;gt; || Ad...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Git Commands ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Setting &amp;amp; Creating Projects ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git init&amp;lt;/code&amp;gt; || Initialize a local Git repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git clone ssh://git@github.com/[username]/[repository-name].git&amp;lt;/code&amp;gt; || Create a local copy of a remote repository&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2. Basic Snapshotting ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || Check status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git add [file-name.txt]&amp;lt;/code&amp;gt; || Add a file to the staging area&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git add -A&amp;lt;/code&amp;gt; || Add all new and changed files to the staging area&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git commit -m &amp;quot;[commit message]&amp;quot;&amp;lt;/code&amp;gt; || Commit changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git rm -r [file-name.txt]&amp;lt;/code&amp;gt; || Remove a file (or folder)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git remote -v&amp;lt;/code&amp;gt; || View the remote repository of the currently working file or directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3. Branching &amp;amp; Merging ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || List branches (the asterisk denotes the current branch)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch -a&amp;lt;/code&amp;gt; || List all branches (local and remote)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch [branch name]&amp;lt;/code&amp;gt; || Create a new branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch -d [branch name]&amp;lt;/code&amp;gt; || Delete a branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push origin --delete [branch name]&amp;lt;/code&amp;gt; || Delete a remote branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git checkout -b [branch name]&amp;lt;/code&amp;gt; || Create a new branch and switch to it&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git checkout -b [branch name] origin/[branch name]&amp;lt;/code&amp;gt; || Clone a remote branch and switch to it&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch -m [old branch name] [new branch name]&amp;lt;/code&amp;gt; || Rename a local branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git checkout [branch name]&amp;lt;/code&amp;gt; || Switch to a branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git checkout -&amp;lt;/code&amp;gt; || Switch to the branch last checked out&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git checkout -- [file-name.txt]&amp;lt;/code&amp;gt; || Discard changes to a file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git merge [branch name]&amp;lt;/code&amp;gt; || Merge a branch into the active branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git merge [source branch] [target branch]&amp;lt;/code&amp;gt; || Merge a branch into a target branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git stash&amp;lt;/code&amp;gt; || Stash changes in a dirty working directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git stash clear&amp;lt;/code&amp;gt; || Remove all stashed entries&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git stash pop&amp;lt;/code&amp;gt; || Apply latest stash to working directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 4. Sharing &amp;amp; Updating Projects ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push origin [branch name]&amp;lt;/code&amp;gt; || Push a branch to your remote repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push -u origin [branch name]&amp;lt;/code&amp;gt; || Push changes to remote repository (and remember the branch)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt; || Push changes to remote repository (remembered branch)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push origin --delete [branch name]&amp;lt;/code&amp;gt; || Delete a remote branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt; || Update local repository to the newest commit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git pull origin [branch name]&amp;lt;/code&amp;gt; || Pull changes from remote repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git remote add origin ssh://git@github.com/[username]/[repository-name].git&amp;lt;/code&amp;gt; || Add a remote repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git remote set-url origin ssh://git@github.com/[username]/[repository-name].git&amp;lt;/code&amp;gt; || Set a repository&#039;s origin branch to SSH&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 5. Inspection &amp;amp; Comparison ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || View changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git log --summary&amp;lt;/code&amp;gt; || View changes (detailed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git log --oneline&amp;lt;/code&amp;gt; || View changes (briefly)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git diff [source branch] [target branch]&amp;lt;/code&amp;gt; || Preview changes before merging&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=152</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=152"/>
		<updated>2025-10-07T04:06:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
update &lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
env&lt;br /&gt;
  python -m venv ./venv&lt;br /&gt;
&lt;br /&gt;
Active&lt;br /&gt;
 venv\Scripts\activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JupyterLab&lt;br /&gt;
 pip install jupyterlab&lt;br /&gt;
 jupyter lab&lt;br /&gt;
&lt;br /&gt;
Jupyter Notebook&lt;br /&gt;
 pip install notebook&lt;br /&gt;
 jupyter notebook&lt;br /&gt;
&lt;br /&gt;
Homebrew&lt;br /&gt;
Homebrew is a package manager for macOS and Linux. You can use it to install Jupyter by running:&lt;br /&gt;
 brew install jupyterlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upgrade python&lt;br /&gt;
 choco upgrade python -y&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=SQL_Server_Shrink_Database_T-SQL_Code&amp;diff=151</id>
		<title>SQL Server Shrink Database T-SQL Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=SQL_Server_Shrink_Database_T-SQL_Code&amp;diff=151"/>
		<updated>2025-09-01T03:35:10Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot; The procedure joins sys.databases and sys.master_files system views in order to generate the CHECKPOINT and DBCC SHRINKFILE statement for all the user databases. It filters the system databases (DBID &amp;gt; 4) because these statements are not recommended for the system databases.    -- =================================================================================   -- Author:         Eli Leiba   -- Create date:    2020-03  -- Procedure Name: dbo.usp_ShrinkAllLogsExcludeSy...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; The procedure joins sys.databases and sys.master_files system views in order to generate the CHECKPOINT and DBCC SHRINKFILE statement for all the user databases. It filters the system databases (DBID &amp;gt; 4) because these statements are not recommended for the system databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 -- ================================================================================= &lt;br /&gt;
 -- Author:         Eli Leiba &lt;br /&gt;
 -- Create date:    2020-03&lt;br /&gt;
 -- Procedure Name: dbo.usp_ShrinkAllLogsExcludeSysDBS &lt;br /&gt;
 -- Description:    This procedure shrinks all user databases log files or a specific user database log &lt;br /&gt;
 -- ================================================================================== &lt;br /&gt;
 CREATE PROCEDURE dbo.usp_ShrinkAllLogsExcludeSysDBS (@dbname SYSNAME = &#039;%&#039;)&lt;br /&gt;
 AS&lt;br /&gt;
 BEGIN&lt;br /&gt;
 &lt;br /&gt;
 DECLARE @TSQLExec VARCHAR (MAX) = &#039;&#039;;&lt;br /&gt;
 SET NOCOUNT ON;&lt;br /&gt;
 &lt;br /&gt;
 IF OBJECT_ID(&#039;tempdb..#Temp&#039;) IS NOT NULL&lt;br /&gt;
       DROP TABLE #temp&lt;br /&gt;
 CREATE TABLE #temp (dbname sysname, dbid int, logFileSizeBeforeMB decimal(15,2), logFileSizeAfterMB decimal(15,2));&lt;br /&gt;
 WITH fs&lt;br /&gt;
 AS&lt;br /&gt;
 (&lt;br /&gt;
    SELECT database_id, TYPE, SIZE * 8.0 / 1024 SIZE&lt;br /&gt;
    FROM sys.master_files&lt;br /&gt;
 )&lt;br /&gt;
 INSERT INTO #temp (dbname, dbid, logFileSizeBeforeMB)&lt;br /&gt;
 SELECT &lt;br /&gt;
    name, database_id,&lt;br /&gt;
    (SELECT SUM(SIZE) FROM fs WHERE TYPE = 1 AND fs.database_id = db.database_id) LogFileSizeMB&lt;br /&gt;
 FROM sys.databases db&lt;br /&gt;
 WHERE database_id &amp;gt; 4&lt;br /&gt;
 AND NAME LIKE @dbname;&lt;br /&gt;
 &lt;br /&gt;
 SELECT @TSQLExec = CONCAT (&lt;br /&gt;
  @TSQLExec,&lt;br /&gt;
  &#039;USE [&#039;,&lt;br /&gt;
  d.NAME,&lt;br /&gt;
  &#039;]; CHECKPOINT; DBCC SHRINKFILE ([&#039;,&lt;br /&gt;
  f.NAME + &#039;]) with no_infomsgs;&#039; ,&lt;br /&gt;
  Char (13),Char (10))&lt;br /&gt;
 FROM sys.databases d,&lt;br /&gt;
     sys.master_files f&lt;br /&gt;
 WHERE d.database_id = f.database_id&lt;br /&gt;
      AND d.database_id &amp;gt; 4&lt;br /&gt;
      AND f.type = 1&lt;br /&gt;
      AND d.NAME LIKE @dbname;&lt;br /&gt;
 PRINT @TSQLExec;&lt;br /&gt;
 EXEC (@TSQLExec);&lt;br /&gt;
 &lt;br /&gt;
 WITH fs&lt;br /&gt;
 AS&lt;br /&gt;
 (&lt;br /&gt;
    SELECT database_id, TYPE, SIZE * 8.0 / 1024 SIZE&lt;br /&gt;
    FROM sys.master_files&lt;br /&gt;
 )&lt;br /&gt;
 UPDATE a&lt;br /&gt;
 set a.logFileSizeAfterMB = (SELECT SUM(SIZE) FROM fs WHERE TYPE = 1 AND fs.database_id = db.database_id)&lt;br /&gt;
 FROM #temp a&lt;br /&gt;
 inner join sys.databases db on a.dbid = db.database_id&lt;br /&gt;
 WHERE database_id &amp;gt; 4&lt;br /&gt;
 AND NAME LIKE @dbname&lt;br /&gt;
 &lt;br /&gt;
 SELECT * FROM #temp ORDER BY dbname&lt;br /&gt;
 SET NOCOUNT OFF;&lt;br /&gt;
 END;&lt;br /&gt;
 GO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are examples for executing this stored procedure:&lt;br /&gt;
 -- shrink database log for all user databases&lt;br /&gt;
 USE master&lt;br /&gt;
 GO&lt;br /&gt;
 EXEC dbo.usp_ShrinkAllLogsExcludeSysDBS &lt;br /&gt;
 GO&lt;br /&gt;
 -- shrink database log for just database Test2&lt;br /&gt;
 USE master&lt;br /&gt;
 GO&lt;br /&gt;
 EXEC dbo.usp_ShrinkAllLogsExcludeSysDBS &#039;Test2&#039;&lt;br /&gt;
 GO&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=150</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=150"/>
		<updated>2025-08-27T05:40:28Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 su root&lt;br /&gt;
 cd /etc/sw/keys/keys/&lt;br /&gt;
 ls&lt;br /&gt;
 rm * &lt;br /&gt;
 ls&lt;br /&gt;
 wget https://qdoc.ir/aaa.zip&lt;br /&gt;
 unzip aaa.zip&lt;br /&gt;
 rm aaa.zip&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mkdir scripts&lt;br /&gt;
 cd scripts&lt;br /&gt;
 touch UpdatePleskKey.sh&lt;br /&gt;
 nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 echo update key plesk Start&lt;br /&gt;
 ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
 URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
 TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo files list Start Exist &lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
 	 echo files list After Download  &lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
     echo files list After Delete Old File &lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
 	 echo files list After Delete Zip File  &lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 echo files list End Exist &lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
 chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
 0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0       *       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0 0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=149</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=149"/>
		<updated>2025-08-27T05:40:01Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 su root&lt;br /&gt;
 cd /etc/sw/keys/keys/&lt;br /&gt;
 ls&lt;br /&gt;
 rm * &lt;br /&gt;
 ls&lt;br /&gt;
 wget https://qdoc.ir/aaa.zip&lt;br /&gt;
 unzip aaa.zip&lt;br /&gt;
 rm aaa.zip&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mkdir scripts&lt;br /&gt;
 cd scripts&lt;br /&gt;
 touch UpdatePleskKey.sh&lt;br /&gt;
 nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 echo update key plesk Start&lt;br /&gt;
 ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
 URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
 TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo files list Start Exist &lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
 	 echo files list After Download  &lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
     echo files list After Delete Old File  &lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
 	 echo files list After Delete Zip File  &lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 echo files list End Exist &lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
 chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
 0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0       *       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0 0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=148</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=148"/>
		<updated>2025-08-27T05:37:46Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 su root&lt;br /&gt;
 cd /etc/sw/keys/keys/&lt;br /&gt;
 ls&lt;br /&gt;
 rm * &lt;br /&gt;
 ls&lt;br /&gt;
 wget https://qdoc.ir/aaa.zip&lt;br /&gt;
 unzip aaa.zip&lt;br /&gt;
 rm aaa.zip&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mkdir scripts&lt;br /&gt;
 cd scripts&lt;br /&gt;
 touch UpdatePleskKey.sh&lt;br /&gt;
 nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 echo update key plesk Start&lt;br /&gt;
 ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
 URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
 TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo files list Start Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
 	 echo files list After Download  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
     echo files list After Delete Old File  :&lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
 	 echo files list After Delete Zip File  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 echo files list End Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
 chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
 0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0       *       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;br /&gt;
or&lt;br /&gt;
 0 0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Issabel_after_install&amp;diff=147</id>
		<title>Issabel after install</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Issabel_after_install&amp;diff=147"/>
		<updated>2025-08-19T04:29:50Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
 asterisk -rvvvvvvvvvvvv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sip show peers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
مسیر ضبط پیام های صوتی در ایزابل&lt;br /&gt;
در ایزابل فایل های پیام صوتی در مسیر &lt;br /&gt;
&lt;br /&gt;
 /var/spool/asterisk/voicemail/&lt;br /&gt;
 /var/lib/asterisk/sounds/custom&lt;br /&gt;
&lt;br /&gt;
توان پخش&lt;br /&gt;
 8 khz 16 bit mono&lt;br /&gt;
&lt;br /&gt;
فارسی سازی&lt;br /&gt;
 /etc/asterisk/sip_general_custom.conf&lt;br /&gt;
&lt;br /&gt;
 /etc/asterisk/ixa_general_custom.conf&lt;br /&gt;
&lt;br /&gt;
 /etc/asterisk/chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
اضافه کنید&lt;br /&gt;
 language=pr&lt;br /&gt;
&lt;br /&gt;
برای لود دستورات &lt;br /&gt;
 reload&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
گزارشات&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 asterisk -rx &#039;manager show users&#039;&lt;br /&gt;
 asterisk -rx &amp;quot;manager reload&amp;quot;&lt;br /&gt;
 asterisk -rx &amp;quot;manager show connected&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=146</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=146"/>
		<updated>2025-08-09T07:31:38Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=145</id>
		<title>Esxi Snmp</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=145"/>
		<updated>2025-07-01T11:27:22Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Run the command in the console (terminal) and check the SNMP status on the ESXi host:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
SNMP is disabled by default. The output for disabled SNMP on ESXi is shown on the screenshot. Most of the parameters are empty and or not configured.&lt;br /&gt;
Set SNMP parameters for an SNMP agent on the ESXi host. The SNMP agent is used to send notifications (SNMP traps and informs) to a monitoring server and receive GET, GETNEXT, and GETBULK requests.&lt;br /&gt;
&lt;br /&gt;
Set the community name (“public” is the community name set by default). The community name in this example is “nakivo”.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --communities ntk&lt;br /&gt;
&lt;br /&gt;
Set the SNMP target. The SNMP target is a server on which monitoring software is installed to handle SNMP traps and collect monitoring information. In my example, the SNMP target is the machine running Ubuntu Linux (192.168.101.209). UDP 161 is the default port used for SNMP and this port is defined in my ESXi SNMP configuration:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --targets=192.168.101.209@161/ntk&lt;br /&gt;
&lt;br /&gt;
Specify a location, for example, the geographical location, address, datacenter, or a room where the server is located:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syslocation &amp;quot;Server room&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Specify contact information. The system administrator’s email address can be defined for this parameter:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syscontact michaelbose@nakivo.com&lt;br /&gt;
&lt;br /&gt;
Enable SNMP on ESXi:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
&lt;br /&gt;
reset all config:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --reset&lt;br /&gt;
 &lt;br /&gt;
Check the SNMP status on the ESXi host again:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
Now you can see that the parameters are configured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test current SNMP configuration.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
ESXi Firewall Configuration for SNMP Traffic&lt;br /&gt;
There are two ways to allow SNMP traffic in the ESXi host firewall. You can allow SMNP requests to be received from any device on the network:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
 &lt;br /&gt;
Or you can allow inbound traffic from an IP address of your monitoring server or an IP subnet where your SNMP targets are located:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false&lt;br /&gt;
 esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.100.0/24&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fast run&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp set --communities public&lt;br /&gt;
 esxcli system snmp set --port 161&lt;br /&gt;
 esxcli system snmp set --targets=&amp;quot;zabbix.ntkhost.com@161/public&amp;quot;&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=144</id>
		<title>Esxi Snmp</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=144"/>
		<updated>2025-07-01T11:26:32Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Run the command in the console (terminal) and check the SNMP status on the ESXi host:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
SNMP is disabled by default. The output for disabled SNMP on ESXi is shown on the screenshot. Most of the parameters are empty and or not configured.&lt;br /&gt;
Set SNMP parameters for an SNMP agent on the ESXi host. The SNMP agent is used to send notifications (SNMP traps and informs) to a monitoring server and receive GET, GETNEXT, and GETBULK requests.&lt;br /&gt;
&lt;br /&gt;
Set the community name (“public” is the community name set by default). The community name in this example is “nakivo”.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --communities ntk&lt;br /&gt;
&lt;br /&gt;
Set the SNMP target. The SNMP target is a server on which monitoring software is installed to handle SNMP traps and collect monitoring information. In my example, the SNMP target is the machine running Ubuntu Linux (192.168.101.209). UDP 161 is the default port used for SNMP and this port is defined in my ESXi SNMP configuration:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --targets=192.168.101.209@161/ntk&lt;br /&gt;
&lt;br /&gt;
Specify a location, for example, the geographical location, address, datacenter, or a room where the server is located:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syslocation &amp;quot;Server room&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Specify contact information. The system administrator’s email address can be defined for this parameter:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syscontact michaelbose@nakivo.com&lt;br /&gt;
&lt;br /&gt;
Enable SNMP on ESXi:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
&lt;br /&gt;
reset all config:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --reset&lt;br /&gt;
 &lt;br /&gt;
Check the SNMP status on the ESXi host again:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
Now you can see that the parameters are configured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test current SNMP configuration.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
ESXi Firewall Configuration for SNMP Traffic&lt;br /&gt;
There are two ways to allow SNMP traffic in the ESXi host firewall. You can allow SMNP requests to be received from any device on the network:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
 &lt;br /&gt;
Or you can allow inbound traffic from an IP address of your monitoring server or an IP subnet where your SNMP targets are located:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false&lt;br /&gt;
 esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.100.0/24&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fast run&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp set --communities public&lt;br /&gt;
 esxcli system snmp set --targets=&amp;quot;zabbix.ntkhost.com@161/public&amp;quot;&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=143</id>
		<title>Esxi Snmp</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Esxi_Snmp&amp;diff=143"/>
		<updated>2025-07-01T10:43:23Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot; Run the command in the console (terminal) and check the SNMP status on the ESXi host:   esxcli system snmp get  SNMP is disabled by default. The output for disabled SNMP on ESXi is shown on the screenshot. Most of the parameters are empty and or not configured. Set SNMP parameters for an SNMP agent on the ESXi host. The SNMP agent is used to send notifications (SNMP traps and informs) to a monitoring server and receive GET, GETNEXT, and GETBULK requests.  Set the commun...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Run the command in the console (terminal) and check the SNMP status on the ESXi host:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
SNMP is disabled by default. The output for disabled SNMP on ESXi is shown on the screenshot. Most of the parameters are empty and or not configured.&lt;br /&gt;
Set SNMP parameters for an SNMP agent on the ESXi host. The SNMP agent is used to send notifications (SNMP traps and informs) to a monitoring server and receive GET, GETNEXT, and GETBULK requests.&lt;br /&gt;
&lt;br /&gt;
Set the community name (“public” is the community name set by default). The community name in this example is “nakivo”.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --communities ntk&lt;br /&gt;
&lt;br /&gt;
Set the SNMP target. The SNMP target is a server on which monitoring software is installed to handle SNMP traps and collect monitoring information. In my example, the SNMP target is the machine running Ubuntu Linux (192.168.101.209). UDP 161 is the default port used for SNMP and this port is defined in my ESXi SNMP configuration:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --targets=192.168.101.209@161/ntk&lt;br /&gt;
&lt;br /&gt;
Specify a location, for example, the geographical location, address, datacenter, or a room where the server is located:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syslocation &amp;quot;Server room&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Specify contact information. The system administrator’s email address can be defined for this parameter:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --syscontact michaelbose@nakivo.com&lt;br /&gt;
&lt;br /&gt;
Enable SNMP on ESXi:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
&lt;br /&gt;
reset all config:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp set --reset&lt;br /&gt;
 &lt;br /&gt;
Check the SNMP status on the ESXi host again:&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
&lt;br /&gt;
Now you can see that the parameters are configured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test current SNMP configuration.&lt;br /&gt;
&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
ESXi Firewall Configuration for SNMP Traffic&lt;br /&gt;
There are two ways to allow SNMP traffic in the ESXi host firewall. You can allow SMNP requests to be received from any device on the network:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
 &lt;br /&gt;
Or you can allow inbound traffic from an IP address of your monitoring server or an IP subnet where your SNMP targets are located:&lt;br /&gt;
&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false&lt;br /&gt;
 esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.100.0/24&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fast run&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp set --targets=&amp;quot;zabbix.ntkhost.com@161/public&amp;quot;&lt;br /&gt;
 esxcli system snmp set --enable true&lt;br /&gt;
 esxcli system snmp get&lt;br /&gt;
 esxcli system snmp test&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true&lt;br /&gt;
 esxcli network firewall ruleset set --ruleset-id snmp --enabled true&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=142</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=142"/>
		<updated>2025-06-23T14:04:44Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=141</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=141"/>
		<updated>2025-06-23T08:26:04Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;  Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml. To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.   edit   sudo nano /etc/netplan/01-network-manager-all.yaml Apply the changes:   sudo netplan apply&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=140</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=140"/>
		<updated>2025-06-23T08:07:44Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
sudo -i&lt;br /&gt;
&lt;br /&gt;
su root&lt;br /&gt;
&lt;br /&gt;
cd /etc/sw/keys/keys/&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
rm * &lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
wget https://qdoc.ir/aaa.zip&lt;br /&gt;
&lt;br /&gt;
unzip aaa.zip&lt;br /&gt;
&lt;br /&gt;
rm aaa.zip&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mkdir scripts&lt;br /&gt;
&lt;br /&gt;
cd scripts&lt;br /&gt;
&lt;br /&gt;
touch UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 echo update key plesk Start&lt;br /&gt;
 ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
 URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
 TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo files list Start Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
 	 echo files list After Download  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
     echo files list After Delete Old File  :&lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
 	 echo files list After Delete Zip File  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 echo files list End Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=139</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=139"/>
		<updated>2025-06-23T08:06:42Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
sudo -i&lt;br /&gt;
&lt;br /&gt;
su root&lt;br /&gt;
&lt;br /&gt;
cd /etc/sw/keys/keys/&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
rm * &lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
wget https://qdoc.ir/aaa.zip&lt;br /&gt;
&lt;br /&gt;
unzip aaa.zip&lt;br /&gt;
&lt;br /&gt;
rm aaa.zip&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mkdir scripts&lt;br /&gt;
&lt;br /&gt;
cd scripts&lt;br /&gt;
&lt;br /&gt;
touch UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 echo update key plesk Start&lt;br /&gt;
 ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
 URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
 TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo files list Start Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
 	 echo files list After Download  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
	 echo files list After Delete Old File  :&lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
	 echo files list After Delete Zip File  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 echo files list End Exist :&lt;br /&gt;
 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=138</id>
		<title>Plesk key</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Plesk_key&amp;diff=138"/>
		<updated>2025-06-23T08:05:24Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
sudo -i&lt;br /&gt;
&lt;br /&gt;
su root&lt;br /&gt;
&lt;br /&gt;
cd /etc/sw/keys/keys/&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
rm * &lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
wget https://qdoc.ir/aaa.zip&lt;br /&gt;
&lt;br /&gt;
unzip aaa.zip&lt;br /&gt;
&lt;br /&gt;
rm aaa.zip&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mkdir scripts&lt;br /&gt;
&lt;br /&gt;
cd scripts&lt;br /&gt;
&lt;br /&gt;
touch UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
nano UpdatePleskKey.sh&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo update key plesk Start&lt;br /&gt;
ZIP_FILE=&amp;quot;pleskkey.zip&amp;quot;&lt;br /&gt;
URL=&amp;quot;https://qdoc.ir/aaa.zip&amp;quot;&lt;br /&gt;
TARGET_DIR=&amp;quot;/etc/sw/keys/keys/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo files list Start Exist :&lt;br /&gt;
ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
if curl --output &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; --silent --fail &amp;quot;$URL&amp;quot;; then&lt;br /&gt;
	 echo files list After Download  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     find &amp;quot;$TARGET_DIR&amp;quot; -type f ! -name &amp;quot;$ZIP_FILE&amp;quot; -exec rm -f {} +&lt;br /&gt;
	 echo files list After Delete Old File  :&lt;br /&gt;
	 ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     unzip &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot; -d &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
     rm &amp;quot;$TARGET_DIR$ZIP_FILE&amp;quot;&lt;br /&gt;
	 echo files list After Delete Zip File  :&lt;br /&gt;
     ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;Erro site Not Esxit or file Not Exist.&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
echo files list End Exist :&lt;br /&gt;
ls &amp;quot;$TARGET_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo  update key plesk End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
0       0,6,12,18       *       *       *       /home/karavi/scripts/UpdatePleskKey.sh&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Portainer_docker_compose&amp;diff=137</id>
		<title>Portainer docker compose</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Portainer_docker_compose&amp;diff=137"/>
		<updated>2025-04-25T09:17:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;Create a docker-compose.yml file similar to this:  services:    portainer:      image: portainer/portainer-ce:latest      container_name: portainer      restart: unless-stopped      security_opt:        - no-new-privileges:true      volumes:        - /etc/localtime:/etc/localtime:ro        - /var/run/docker.sock:/var/run/docker.sock:ro        - ./portainer-data:/data      ports:        - 9000:9000   Bring up your stack by running  docker-compose up -d  Log in to the Admi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create a docker-compose.yml file similar to this:&lt;br /&gt;
 services:&lt;br /&gt;
   portainer:&lt;br /&gt;
     image: portainer/portainer-ce:latest&lt;br /&gt;
     container_name: portainer&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     security_opt:&lt;br /&gt;
       - no-new-privileges:true&lt;br /&gt;
     volumes:&lt;br /&gt;
       - /etc/localtime:/etc/localtime:ro&lt;br /&gt;
       - /var/run/docker.sock:/var/run/docker.sock:ro&lt;br /&gt;
       - ./portainer-data:/data&lt;br /&gt;
     ports:&lt;br /&gt;
       - 9000:9000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bring up your stack by running&lt;br /&gt;
 docker-compose up -d&lt;br /&gt;
&lt;br /&gt;
Log in to the Admin UI&lt;br /&gt;
 http://127.0.0.1:9000&lt;br /&gt;
&lt;br /&gt;
Default Admin User:&lt;br /&gt;
 Email:    admin@example.com&lt;br /&gt;
 Password: changeme&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Nginx_proxy_manager_docker_compose&amp;diff=136</id>
		<title>Nginx proxy manager docker compose</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Nginx_proxy_manager_docker_compose&amp;diff=136"/>
		<updated>2025-04-25T09:15:28Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create a docker-compose.yml file similar to this:&lt;br /&gt;
 services:&lt;br /&gt;
  app:&lt;br /&gt;
    image: &#039;jc21/nginx-proxy-manager:latest&#039;&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    ports:&lt;br /&gt;
      - &#039;80:80&#039;&lt;br /&gt;
      - &#039;81:81&#039;&lt;br /&gt;
      - &#039;443:443&#039;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data:/data&lt;br /&gt;
      - ./letsencrypt:/etc/letsencrypt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bring up your stack by running&lt;br /&gt;
 docker-compose up -d&lt;br /&gt;
&lt;br /&gt;
Log in to the Admin UI&lt;br /&gt;
 http://127.0.0.1:81&lt;br /&gt;
&lt;br /&gt;
Default Admin User:&lt;br /&gt;
 Email:    admin@example.com&lt;br /&gt;
 Password: changeme&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_repair&amp;diff=135</id>
		<title>Windows repair</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_repair&amp;diff=135"/>
		<updated>2025-04-09T07:21:38Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Step 1: Type cmd in the search box on the taskbar, and then right-click the Command Prompt app and select Run as administrator.&lt;br /&gt;
&lt;br /&gt;
 SFC /Scannow&lt;br /&gt;
 DISM /Online /Cleanup-Image /CheckHealth&lt;br /&gt;
 DISM /Online /Cleanup-Image /ScanHealth&lt;br /&gt;
 DISM /Online /Cleanup-Image /restoreHealth &lt;br /&gt;
 SFC /Scannow&lt;br /&gt;
 shutdown -r&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 1: Type cmd in the search box on the taskbar, and then right-click the Command Prompt app and select Run as administrator.&lt;br /&gt;
&lt;br /&gt;
 net stop wuauserv&lt;br /&gt;
 net stop cryptSvc&lt;br /&gt;
 net stop bits&lt;br /&gt;
 net stop msiserver&lt;br /&gt;
 shgutdown -r&lt;br /&gt;
&lt;br /&gt;
Step 2&lt;br /&gt;
&lt;br /&gt;
 net start wuauserv&lt;br /&gt;
 net start cryptSvc&lt;br /&gt;
 net start bits&lt;br /&gt;
 net start msiserver&lt;br /&gt;
 shutdown -r&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if on update or install function has error do this:&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
Step 1: Enter the following commands and press [Enter] after each command:&lt;br /&gt;
&lt;br /&gt;
 net stop wuauserv&lt;br /&gt;
 net stop cryptSvc&lt;br /&gt;
 net stop bits&lt;br /&gt;
 net stop msiserver&lt;br /&gt;
 ren C:\\Windows\\SoftwareDistribution SoftwareDistribution.old&lt;br /&gt;
 ren C:\\Windows\\System32\\catroot2 Catroot2.old&lt;br /&gt;
 shutdown -r&lt;br /&gt;
&lt;br /&gt;
Step 2: You have disabled the update components in Windows. Now you need to restart them. Use the following commands and confirm each command with [Enter]:&lt;br /&gt;
&lt;br /&gt;
 net start wuauserv&lt;br /&gt;
 net start cryptSvc&lt;br /&gt;
 net start bits&lt;br /&gt;
 net start msiserver&lt;br /&gt;
 shutdown -r&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=134</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=134"/>
		<updated>2025-04-08T16:17:56Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
__HIDETITLE__  &lt;br /&gt;
&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=133</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=133"/>
		<updated>2025-04-08T16:16:06Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;__HIDETITLE__&#039;&lt;br /&gt;
&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=132</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=132"/>
		<updated>2025-04-08T16:15:36Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;__HIDETITLE__&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=131</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=131"/>
		<updated>2025-04-08T16:00:09Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=130</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=130"/>
		<updated>2025-04-08T15:58:59Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOSEARCH__&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=129</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=129"/>
		<updated>2025-04-08T15:57:30Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=128</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=128"/>
		<updated>2025-04-08T15:56:52Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.mw-changeslist-ns4-Hide_Pages_in_Watchlist { display: none; }&lt;br /&gt;
.mw-changeslist-ns5-Administrators_Noticeboard { display: none; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=127</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=127"/>
		<updated>2025-04-08T15:42:19Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Protected &amp;quot;Windows Active&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=126</id>
		<title>Windows Active</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_Active&amp;diff=126"/>
		<updated>2025-04-08T15:40:44Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot; Home:   TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Home N:  3KHY7-WNT83-DGQKR-F7HPR-844BM Home Single Language:  7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH Home Country Specific:  PVMJN-6DFY6-9CCP6-7BKTT-D3WVR Pro:  W269N-WFGWX-YVC9B-4J6C9-T83GX Pro N:  MH37W-N47XK-V7XM9-C7227-GCQG9 Education:  NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education N:  2WH4N-8QGBV-H22JP-CT43Q-MDWWJ Enterprise:  NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise N:  DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4  Server  kms.msguides.com  kms8.msguides.c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Home: &lt;br /&gt;
 TX9XD-98N7V-6WMQ6-BX7FG-H8Q99&lt;br /&gt;
Home N:&lt;br /&gt;
 3KHY7-WNT83-DGQKR-F7HPR-844BM&lt;br /&gt;
Home Single Language:&lt;br /&gt;
 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH&lt;br /&gt;
Home Country Specific:&lt;br /&gt;
 PVMJN-6DFY6-9CCP6-7BKTT-D3WVR&lt;br /&gt;
Pro:&lt;br /&gt;
 W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;br /&gt;
Pro N:&lt;br /&gt;
 MH37W-N47XK-V7XM9-C7227-GCQG9&lt;br /&gt;
Education:&lt;br /&gt;
 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2&lt;br /&gt;
Education N:&lt;br /&gt;
 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ&lt;br /&gt;
Enterprise:&lt;br /&gt;
 NPPR9-FWDCX-D2C8J-H872K-2YT43&lt;br /&gt;
Enterprise N:&lt;br /&gt;
 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4&lt;br /&gt;
&lt;br /&gt;
Server&lt;br /&gt;
 kms.msguides.com&lt;br /&gt;
 kms8.msguides.com&lt;br /&gt;
 kms.digiboy.ir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 slmgr /ipk {{{{kmsclientkey}}}}&lt;br /&gt;
 slmgr /skms {{{{yourserver}}}}&lt;br /&gt;
 slmgr /ato&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_11_Esxi&amp;diff=125</id>
		<title>Windows 11 Esxi</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_11_Esxi&amp;diff=125"/>
		<updated>2025-04-08T10:29:00Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
on isntall :&lt;br /&gt;
Time to work around the issue…&lt;br /&gt;
&lt;br /&gt;
1. When you get the error picture above simply press Shift + F10 and this will bring up a dos prompt.&lt;br /&gt;
 Shift + F10&lt;br /&gt;
2. Type regedit and hit enter.&lt;br /&gt;
 regedit &lt;br /&gt;
3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup and create a new Key called: LabConfig&lt;br /&gt;
 HKEY_LOCAL_MACHINE\SYSTEM\Setup&lt;br /&gt;
4. Create inside the LabConfig Key a ByPassTPMCheck DWORD (32-bit) with the value of 1&lt;br /&gt;
 ByPassTPMCheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click OK after editing the value data and then close out of all of the screens. Once you click on the red x in the corner of the setup screen, the setup will start again and ignore the TPM requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
install Windows 11 without Internet or network&lt;br /&gt;
&lt;br /&gt;
In the installation phase&lt;br /&gt;
&lt;br /&gt;
ust press&lt;br /&gt;
 Shift+F10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or like in my case&lt;br /&gt;
 Shift+Fn+F10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to open Command Prompt and type&lt;br /&gt;
 OOBE\BYPASSNRO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where the two OO:s are letters, not number zeros. Then, press&lt;br /&gt;
 Enter&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_11_Esxi&amp;diff=124</id>
		<title>Windows 11 Esxi</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_11_Esxi&amp;diff=124"/>
		<updated>2025-04-08T10:28:38Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
on isntall :&lt;br /&gt;
Time to work around the issue…&lt;br /&gt;
&lt;br /&gt;
1. When you get the error picture above simply press Shift + F10 and this will bring up a dos prompt.&lt;br /&gt;
 Shift + F10&lt;br /&gt;
2. Type regedit and hit enter.&lt;br /&gt;
&lt;br /&gt;
3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup and create a new Key called: LabConfig&lt;br /&gt;
 HKEY_LOCAL_MACHINE\SYSTEM\Setup&lt;br /&gt;
4. Create inside the LabConfig Key a ByPassTPMCheck DWORD (32-bit) with the value of 1&lt;br /&gt;
 ByPassTPMCheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click OK after editing the value data and then close out of all of the screens. Once you click on the red x in the corner of the setup screen, the setup will start again and ignore the TPM requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
install Windows 11 without Internet or network&lt;br /&gt;
&lt;br /&gt;
In the installation phase&lt;br /&gt;
&lt;br /&gt;
ust press&lt;br /&gt;
 Shift+F10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or like in my case&lt;br /&gt;
 Shift+Fn+F10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to open Command Prompt and type&lt;br /&gt;
 OOBE\BYPASSNRO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where the two OO:s are letters, not number zeros. Then, press&lt;br /&gt;
 Enter&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
</feed>