วันพฤหัสบดีที่ 2 พฤษภาคม พ.ศ. 2562

Print Error If you want to enable insecure guest access, you can configure the following Group Policy settings:

แก้ปัญหาตามนี้ครับ

Resolution
If you want to enable insecure guest access, you can configure the following Group Policy settings:

กด win+R ขึ้นหน้าจอ Run แล้ว พิมพ์ "gpedit.msc" ทำตามด้านล่างเลยครับ 
Computer configuration\administrative templates\network\Lanman Workstation
"Enable insecure guest logons"

Note By enabling insecure guest logons, this setting reduces the security of Windows clients. 

คราวนี้กด win+R แล้ว พิมพ์ชื่ออีกเครื่องครับ \\...

อ้างอิง https://support.microsoft.com/en-us/help/4046019/guest-access-smb2-disabled-by-default-in-windows-10-server-2016

วันอังคารที่ 9 เมษายน พ.ศ. 2562

Wireless LAN Channel mikrotk

เรื่องนี้มันร่ายยาวมากครับ

ก่อนอื่นต้องทำความเข้าใจก่อน ว่าตัวแปรในการเขื่อมต่อ Wireless LAN ให้ได้ความเร็วมันมีอยู่ดังนี้


1 Channel Width
2. Modulation 

Channel width ก็คือตรงความกว้างของความถี่ที่คุณเปิดนี่แหละครับ คิดซะว่าเหมือนถนนละกัน

ถนน 5Mhz กับ 10Mhz นี่แทบไม่ใช้แล้ว อยู่แค่ใน WIFI 802.11 a/b เองมั้ง

ปัจจุบันต่ำสุด ก็ 20Mhz นะครับ 

2. คือ Modulation อื้มมม พูดแล้วเข้าใจยาก คิดซะว่ามันคือ กระบวนการ zip ข้อมูลใ้ห้เล็กๆแล้วส่งไปกับคลื่นละกันนะครับ ยิ่ง Modulation สูงๆ ก็ยิ่งขน Data ไปได้เยอะ ก็เหมือนกับ ขนของบนรถกระบะชั้นเดียว กับรถกระบะ 2 ชั้นอ่ะครับ พื้นที่เท่ากัน แต่ขนของไปได้เยอะกว่า

ดังนั้น ถ้าถนนกว้าง และ รถขนของไปได้เยอะ ก็จะทำให้ ส่ง data ไปให้มาก ต่อ เวลาที่จำกัดนั่นเอง 

แล้ว eC หรือ Ce หรือ eCee , Ceee พวกนี้คืออะไร

ในมาตรฐานของ WIFI N มีการเอา MIMO มาใช้งาน มันคือ Multiple Input Multiple Output ครับ

ถ้าถนน 20Mhz ขนของได้เท่านี้

งั้นถนน 40Mhz ก็ขนของได้มากขึ้นสิ

พอมีการประกบถนนให้ยาวขึ้น

ก็ต้องมีการกำหนด Control Channel ว่าจะอยู่ตรงไหน หรือก็คือ ค่า C นั่นแหละครับ

ถ้า Ce ก็คือ 40Mhz นั่นคือหมาย 20+20 Mhz แล้วให้ Control Channel อยู่ใน Channel ที่ต่ำกว่า หรือ Channel ซ้ายนั่นเองครับ

Ceee ก็คือ 80mhz แล้วก็ให้ Control Channel อยู่ซ้ายสุด

นั่นแหละครับ
อ.ศุภเดช เคยบอกไว้แล้วครับ

วันอังคารที่ 5 มีนาคม พ.ศ. 2562

freeddns

:global AfraidUser "user_name"
:global AfraidPass "password"
:global WANInter "interface_name"
:global AfraidDomain "domain_name"

:global IpCurrent [/ip address get [find interface=$WANInter] address];
:for i from=( [:len $IpCurrent] - 1) to=0 do={ 
  :if ( [:pick $IpCurrent $i] = "/") do={ 
    :global NewIP [:pick $IpCurrent 0 $i];
    :if ([:resolve $AfraidDomain] != $NewIP) do={
      /tool fetch mode=http url="fetchable_URL_goes_here" keep-result=no
      :log info "Afraid.org Update: $AfraidDomain - $NewIP"
     } else={
     :log info "Afraid.org: don't need updates";
    }
   } 
}




http://freedns.afraid.org


วันจันทร์ที่ 3 ธันวาคม พ.ศ. 2561

Dynu Script mikrotik

# get the current IP address from the internet
/tool fetch mode=http address="checkip.dynu.com" src-path="/" 
dst-path="/dynu.checkip.html"
:local result [/file get dynu.checkip.html contents]

# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local currentIP [:pick $result $startLoc $resultLen]
:global ddnsuser your_Dynu_username
:global ddnspass "your_Dynu_password"
:global ddnshost "your_Dynu_hostname"
:global ipddns [:resolve $ddnshost];

#:global ipddns

:if ($ipddns != $currentIP) do={
:log info ("DynuDDNS: IP-Dynu = $ipddns")
:log info ("DynuDDNS: IP-Fresh = $currentIP")
:log info "DynuDDNS: Update IP needed, Sending UPDATE...!"
:global str "/nic/update?hostname=$ddnshost&myip=$currentIP"
:log info "currentIP is $currentIP"
/tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass 
dst-path=("/Dynu.".$ddnshost)
:delay 1
:global str [/file find name="Dynu.$ddnshost"];
/file remove $str
:global ipddns $currentIP
:log info "DynuDDNS: IP updated to $currentIP!"
} else={
:log info "DynuDDNS: No change needed";
}


/system script
add name=Dynu
policy=read,write,test
source=":global ddnsuser your_Dynu_username
:global ddnspass "your_Dynu_password"
:global theinterface "WAN_Interface_Name"
:global ddnshost "your_Dynu_hostname"
:global ipddns [:resolve $ddnshost];
:global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
:log info ("DynuDDNS: No IP address on $theinterface .")
} else={
:for i from=( [:len $ipfresh] - 1) to=0 do={
:if ( [:pick $ipfresh $i] = "/") do={
:set ipfresh [:pick $ipfresh 0 $i];
}
}
:if ($ipddns != $ipfresh) do={
:log info ("DynuDDNS: IP-Dynu = $ipddns")
:log info ("DynuDDNS: IP-Fresh = $ipfresh")
:log info "DynuDDNS: Update IP needed, Sending UPDATE...!"
:global str "/nic/update?hostname=$ddnshost&myip=$ipfresh"
/tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=("/Dynu.".$ddnshost)
:delay 1
:global str [/file find name="Dynu.$ddnshost"];
/file remove $str
:global ipddns $ipfresh
:log info "DynuDDNS: IP updated to $ipfresh!"
} else={
:log info "DynuDDNS: dont need changes";
} }"


/system scheduler add comment="Update Dynu DDNS" interval=5m name=ddns_sheduller \
on-event="/system script run Dynu\r\n" policy=read,write,test start-time=startup




///////////////work


# get the current IP address from the internet
/tool fetch mode=http address="checkip.dynu.com" src-path="/" dst-path="/dynu.checkip.html"
:local result [/file get dynu.checkip.html contents]

# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local currentIP [:pick $result $startLoc $resultLen]
:global ddnsuser "user"
:global ddnspass "pass"
:global ddnshost "host"
:global ipddns [:resolve $ddnshost];

#:global ipddns

:if ($ipddns != $currentIP) do={
:log info ("DynuDDNS: IP-Dynu = $ipddns")
:log info ("DynuDDNS: IP-Fresh = $currentIP")
:log info "DynuDDNS: Update IP needed, Sending UPDATE...!"
:global str "/nic/update?hostname=$ddnshost&myip=$currentIP"
:log info "currentIP is $currentIP"
/tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=("/Dynu.".$ddnshost)
:delay 1
:global str [/file find name="Dynu.$ddnshost"];
/file remove $str
:global ipddns $currentIP
:log info "DynuDDNS: IP updated to $currentIP!"
} else={
:log info "DynuDDNS: No change needed";
}

วันอาทิตย์ที่ 2 ธันวาคม พ.ศ. 2561

change backup Vestacp

nano /usr/local/vesta/data/users/admin/user.conf แก้ admin เป็น user แล้ว หา backup = 3 เปลี่ยน เป็น 1

วันพฤหัสบดีที่ 8 พฤศจิกายน พ.ศ. 2561

NewHost php 7 config

PHP7
nano /etc/php/7.0/apache2/php.ini
date.timezone = "Asia/Bangkok"
max_execution_time = 3600
max_input_time = 360
max_input_vars = 2000
memory_limit = 1024M

Backup
nano /usr/local/vesta/data/users/admin/user.conf
แก้ admin เป็น user แล้ว หา backup = 3 เปลี่ยน เป็น 1

LDAP
extension=php_ldap.dll
apt-get install php7.0-ldap (or use apt-get install php7.1-ldap )
service apache2 restart

cd /home/admin/conf/web
nano apache2.conf
+nano sapache2.conf
php_admin_value open_basedir none
php_admin_value upload_tmp_dir none

วันจันทร์ที่ 5 พฤศจิกายน พ.ศ. 2561

Enabling SSH screenly Raspbeery

Enabling SSH

If you have installed via a newer NOOBS Installer SSH is disabled by default. To Enable it:
  1. Connect via the Console (CTRL + ALT + F1)
  2. Login using the default user name and password (pi'raspberry`)
  3. Execute sudo raspi-config
  4. Select Interfacing Options
  5. Navigate to and select SSH
  6. Choose Yes
  7. Select Ok
  8. Choose Finish
You should now be able to SSH into the Pi
It is highly recommended that you change the default password if you intend to connect your Pi to the outside world.