Narzędzia użytkownika

Narzędzia witryny


sk2:zajecia_zdalne

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
sk2:zajecia_zdalne [2021/11/24 19:42]
jkonczak [Oprogramowanie do zdalnych zajęć]
sk2:zajecia_zdalne [2021/12/18 13:38] (aktualna)
jkonczak [Oprogramowanie do zdalnych zajęć]
Linia 1: Linia 1:
 ====== Oprogramowanie do zdalnych zajęć ====== ====== Oprogramowanie do zdalnych zajęć ======
  
-** Programowanie niskopoziomowe ​(zajęcia 1-6) **+++++ Programowanie niskopoziomowe ​|
  
 Do zajęć zdalnych koniecznie musicie mieć do dyspozycji: Do zajęć zdalnych koniecznie musicie mieć do dyspozycji:
Linia 23: Linia 23:
     * ''​wireshark''​     * ''​wireshark''​
   * wygodny emulator terminala   * wygodny emulator terminala
 +++++
  
 +**Qt**\\
 +Proszę zainstalować program qtcreator oraz podstawowe biblioteki deweloperskie,​ dokumentację i narzędzia frameworku Qt (w wersji 5.15.X lub 6.X). \\
 +W zdecydowanej większości dystrybucji Linuksa pakiety są dostępne w domyślnych repozytoriach (np. dla Ubuntu: ''​qtbase5-dev qt5-doc qtcreator''​). \\
 +Proszę przetestować czy środowisko działa poprawnie kompilując przykładowy kod: {{:​sk2:​l6_z2_template.tar.xz|}}. \\
 +<​html><​small></​html>​Uwaga:​ dla Qt6 trzeba w CMakeLists.txt zmienić wszystkie wystąpienia ''​Qt5''​ na ''​Qt6''<​html></​small></​html>​
  
- +**Java**\\
-++++ Qt – 10.11 i 17.11 (grupy wtorkowe) / 25.11 i 2.12 (grupy środowe) (zajęcia 6 i 7) | +
-Proszę zainstalować program qtcreator oraz podstawowe biblioteki deweloperskie,​ dokumentację i narzędzia frameworku Qt (w wersji 5).  +
-W zdecydowanej większości dystrybucji Linuksa pakiety są dostępne w domyślnych repozytoriach (np. dla Ubuntu: ''​qtbase5-dev qt5-doc qtcreator libclang-common-8-dev''​((Paczka ''​libclang-common-8-dev''​ jest wymagana w Ubuntu niezależnie od wersji clanga [[https://​bugs.debian.org/​cgi-bin/​bugreport.cgi?​bug=952718|z niezrozumiałych przeze mnie powodów]]))). ​\\ +
-Proszę przetestować czy środowisko działa poprawnie kompilując przykładowy kod: {{:​sk2:​l6_z2_template.tar.xz|}}. +
-++++ +
- +
-++++ Java - 24.11 (grupy wtorkowe) / 9.11 (grupy środowe) ​ (zajęcia 8) |+
 Proszę zainstalować JDK i swoje ulubione IDE do Javy (np. IntelliJ / Eclipse / NetBeans). ​ Proszę zainstalować JDK i swoje ulubione IDE do Javy (np. IntelliJ / Eclipse / NetBeans). ​
-++++ 
  
-++++ DNS - 1.12 (grupy wtorkowe) / 9.12 (grupy środowe) (zajęcia 9) |+++++ DNS |
 Proszę zainstalować programy ''​dig'',​ ''​host''​ i ''​bind''​. \\ Proszę zainstalować programy ''​dig'',​ ''​host''​ i ''​bind''​. \\
 W zależności od dystrybucji,​ programy mogą być w paczkach o nazwach: W zależności od dystrybucji,​ programy mogą być w paczkach o nazwach:
Linia 76: Linia 74:
 ++++ ++++
  
-++++ Kształtowanie ruchu - 8.12 (grupy wtorkowe) / 23.12 (grupy środowe) (zajęcia 10) |+++++ Kształtowanie ruchu |
 Na zajęciach będziecie pracować na komputerach w laboratorium na Politechnice. Na zajęciach będziecie pracować na komputerach w laboratorium na Politechnice.
 Przed zajęciami proszę: Przed zajęciami proszę:
Linia 91: Linia 89:
  
  
-++++ IPv6 - 15.12 (grupy wtorkowe) / 13.01 (grupy środowe) (zajęcia 11) |+++++ IPv6  |
 Podobnie jak na zajęciach z kształtowania ruchu (powyżej) w trakcie zajęć będą wykorzystywane komputery w laboratoriach. Podobnie jak na zajęciach z kształtowania ruchu (powyżej) w trakcie zajęć będą wykorzystywane komputery w laboratoriach.
  
Linia 103: Linia 101:
 ++++ ++++
  
-++++ WLAN 1 - 22.12 (grupy wtorkowe) / 20.01 (grupy środowe) (zajęcia 12) |+++++ WLAN 1  |
 Podobnie jak na zajęciach z IPv6 (powyżej) w trakcie zajęć będą wykorzystywane komputery w laboratoriach. \\ Podobnie jak na zajęciach z IPv6 (powyżej) w trakcie zajęć będą wykorzystywane komputery w laboratoriach. \\
 Możliwe (zależy od tempa zajęć) że w trakcie zajęć będzie też potrzeba uruchomić Wireshark na komputerach w laboratorium. Możliwe (zależy od tempa zajęć) że w trakcie zajęć będzie też potrzeba uruchomić Wireshark na komputerach w laboratorium.
 ++++ ++++
  
-++++ WLAN 2 - 12.01 (grupy wtorkowe) / 27.01 (grupy środowe) (zajęcia 13) |+++++ WLAN 2  |
 Zajęcia będą odbywać się na komputerach w laboratorium. \\ Zajęcia będą odbywać się na komputerach w laboratorium. \\
 W zależności od ilości osób może wystąpić konieczność pracy w grupach – sprzętowych AP jest ograniczona ilość. W zależności od ilości osób może wystąpić konieczność pracy w grupach – sprzętowych AP jest ograniczona ilość.
Linia 114: Linia 112:
 ++++ ++++
  
-++++ WLAN 3 - 19.01 (grupy wtorkowe) ​|+++++ WLAN 3  |
 Zajęcia będą odbywać się na komputerach w laboratorium. \\ Zajęcia będą odbywać się na komputerach w laboratorium. \\
 Będziecie konfigurować sprzęt firmy MikroTik, który najłatwiej konfiguruje się z użyciem przeglądarki pod domyślnym ​ dla sprzętu tej firmy adresem IP 192.168.88.1.\\ Będziecie konfigurować sprzęt firmy MikroTik, który najłatwiej konfiguruje się z użyciem przeglądarki pod domyślnym ​ dla sprzętu tej firmy adresem IP 192.168.88.1.\\
Linia 126: Linia 124:
 ====== Udostępnianie widoku swojego pulpitu ​ ====== ====== Udostępnianie widoku swojego pulpitu ​ ======
  
-Proszę wybrać ​jedną metodę na udostępnianie mi podglądu kodu który piszecie.+Proszę wybrać ​__jedną__ metodę na udostępnianie mi podglądu kodu który piszecie.
  
-Najprostsza do skonfigurowania jest metoda #1, ale nie pozwala ona mi widzieć terminala, co utrudnia mi pomaganie w razie problemów z/podczas uruchomienia programów. +===== Metoda #1: Udostępnienie VNC prowadzącemu ​(Linuks) =====
-===== Metoda #1: Wtyczka 'Live Share' w VS code (tylko zajęcia z programowania C/C++) =====+
  
-Edytor VisualStudio Code pozwala udostępniać bieżąco edytowany projekt przy użyciu rozszerzenia [[https://​visualstudio.microsoft.com/​pl/​services/​live-share/​|Live Share]]. +==== Skrócona instrukcja ==== 
-  - pobrać ​zainstalować VS Code, +Instrukcja skrócona (dla osób które chcą gotowe polecenia ​nie chce im się czytać dalej):
-  - zainstalować wtyczkę Live Share (menu view/​extensions),​ +
-  - zalogować ​się, np. kontem Microsoft ([[https://​instrukcje.put.poznan.pl/​microsoft-office365-tworzenie-konta/​]]),​ +
-  - wybrać 'live share' (1), wystartować współdzielenie (2), wybrać '​invite'​ (3) i przekazać link prowadzącemu (numery odnoszą się do ilustracji poniżej) +
-  - po pojawieniu się prośby o dołączenie osoby, zaakceptować tę prośbę. +
-{{:sk2:vscode_ls.png|}}+
  
-**Uwaga**: Osoby korzystające z tej metody powinny do zajęć 1 2 z BSD sockets: +  - zainstaluj openvpn, x11vnc ​vncviewer 
-  ​* uruchomić u siebie usługę daytime na TCP i UDP +  ​- wykonaj:<​code>​ 
-  * lub wykonać z roota polecenie zastępujące daytime, np\\ ''​socat udp-l:daytime,​fork exec:​date ​socat tcp-l:daytime,​fork exec:date &''​+wget http://​www.cs.put.poznan.pl/​jkonczak/​pub/​sk2/​sk2-vpn-ca.crt 
 +sudo openvpn --dev tap --client --ca sk2-vpn-ca.crt --auth-user-pass --daemon --remote ipv4.jprofesorek.mooo.com 
 +x11vnc -quiet -nopw -forever -display ​:disown 
 +sleep 5 
 +ip -4 addr show dev tap0</​code>​ 
 +  - sprawdź z drugiego komputera czy po połączeniu go identycznymi poleceniami do VPNa możesz zobaczyć swój ekran:<​code>​vncviewer <​ip_komputera></​code>​
  
- +==== Pełna Instrukcja ​====
- +
-===== Metoda #2: Udostępnienie VNC prowadzącemu (Linuks) ​===== +
- +
-  # tl;dr (czyli dla osób które chcą gotowe polecenia i nie chce im się czytać dalej) +
-  wget http://​www.cs.put.poznan.pl/​jkonczak/​pub/​sk2/​sk2-vpn-ca.crt +
-  sudo openvpn --dev tap --client --ca sk2-vpn-ca.crt --auth-user-pass --daemon --remote ipv4.jprofesorek.mooo.com +
-  x11vnc -quiet -nopw -forever -display :0 & disown +
-  sleep 5 +
-  ip -4 addr show dev tap0+
   ​   ​
- +=== Krok 1: dołączenie do VPNa ===
-==== Krok 1: dołączenie do VPNa ====+
 W trakcie zajęć wykorzystywany będzie OpenVPN. Należy zainstalować odpowiednią paczkę (zwykle o nazwie ''​openvpn''​) w systemie z którego będzie udostępniany ekran. W trakcie zajęć wykorzystywany będzie OpenVPN. Należy zainstalować odpowiednią paczkę (zwykle o nazwie ''​openvpn''​) w systemie z którego będzie udostępniany ekran.
  
Linia 166: Linia 153:
   * (port i protokół domyślne - 1194/udp)   * (port i protokół domyślne - 1194/udp)
   * nazwa użytkownika i hasło, przekazane innym kanałem przez prowadzącego. ​ \\ Nazwę użytkownika i hasło można dla wygody wpisać do pliku o nieskomplikowanym ​ formacie: <code - userPass.txt>​theExampleUsername   * nazwa użytkownika i hasło, przekazane innym kanałem przez prowadzącego. ​ \\ Nazwę użytkownika i hasło można dla wygody wpisać do pliku o nieskomplikowanym ​ formacie: <code - userPass.txt>​theExampleUsername
-someIncorrectPassword</​code>​Uwaga: ​plikz hasłem musi mieć uprawnienia zabraniające odczyt komukolwiek poza bieżącym użytkownikiem (do ustawienia uprawnień można użyć np. ''​chmod go-rwx userPass.txt''​)+someIncorrectPassword</​code>​Uwaga: ​plik z hasłem musi mieć uprawnienia zabraniające odczyt komukolwiek poza bieżącym użytkownikiem (do ustawienia uprawnień można użyć np. ''​chmod go-rwx userPass.txt''​)
  
 Polecenie uruchamiające VPNa, należy je uruchamiać z __roota__ (**wybierz jedno**): Polecenie uruchamiające VPNa, należy je uruchamiać z __roota__ (**wybierz jedno**):
-  * Wersja 1 - wszystko w linii poleceń: <​code>​openvpn --dev tap --client --ca /​somewhere/​sk2-vpn-ca.crt --auth-user-pass /​somewhere/​userPass.txt --remote ipv4.jprofesorek.mooo.com</​code>​ Uwaga 1: można pominąć ​nazwę ​pliku ''​ /​somewhere/​userPass.txt'',​ wtedy program pyta o nazwę użytkownika / hasło. \\ Uwaga 2: można dodać opcję ''​--daemon'',​ która przenosi program w tło. Bez tej opcji program openvpn zajmuje konsolę (a zamknięcie okna z konsolą przerywa połączenie).+  * Wersja 1 - wszystko w linii poleceń: <​code>​openvpn --dev tap --client --ca /​somewhere/​sk2-vpn-ca.crt --auth-user-pass /​somewhere/​userPass.txt --remote ipv4.jprofesorek.mooo.com</​code>​ Uwaga 1: można pominąć ​podawanie ​pliku ''/​somewhere/​userPass.txt'',​ wtedy program pyta o nazwę użytkownika / hasło. \\ Uwaga 2: można dodać opcję ''​--daemon'',​ która przenosi program w tło. Bez tej opcji program openvpn zajmuje konsolę (a zamknięcie okna z konsolą przerywa połączenie).
   * Wersja 2 - przygotuj plik konfiguracyjny:​ <code - sk2-vpn.ovpn>​client   * Wersja 2 - przygotuj plik konfiguracyjny:​ <code - sk2-vpn.ovpn>​client
 remote ipv4.jprofesorek.mooo.com remote ipv4.jprofesorek.mooo.com
Linia 176: Linia 163:
 auth-user-pass /​somewhere/​userPass.txt auth-user-pass /​somewhere/​userPass.txt
 #​daemon</​code>​ następnie uruchom polecenie: <​code>​openvpn --config sk2-vpn.ovpn</​code>​ #​daemon</​code>​ następnie uruchom polecenie: <​code>​openvpn --config sk2-vpn.ovpn</​code>​
-  * Wersja 3 - użyj graficznego konfiguracja dla NetworkManagera (ta wersja potrzebuje NetworkManagera i może potrzebować dodatkowych pakietów, np. ''​network-manager-openvpn-gnome''​).+  * Wersja 3 - użyj graficznego konfiguracja dla NetworkManagera (ta wersja potrzebuje NetworkManagera i może potrzebować dodatkowych pakietów, np. ''​network-manager-openvpn-gnome''​). ​<​html><​small></​html>​ \\ Uwaga: poza przeklikaniem wymienionych wyżej ustawień konieczne jest wyłączenie dodawnia domyślnej bramy przez VPN: \\ ''​IPv4 options''​ / ''​Routes…''​ / ''​Use this connection only for resources on its network''​ \\ Można to też zmienić z konsoli: ''​nmcli c modify <​nazwa_połączenia>​ ipv4.never-default true''​ <​html></​small></​html> ​
  
 **Sprawdzenie czy wszystko poszło dobrze:** po wykonaniu wybranej z komend, w wynikach komendy ''​ip address''​ powinien pojawić się interfejs ''​tap0''​ z adresem IP z sieci 10.0.9.0/​24. Dodatkowo powinna działać komenda ''​ping 10.0.9.1''​. **Sprawdzenie czy wszystko poszło dobrze:** po wykonaniu wybranej z komend, w wynikach komendy ''​ip address''​ powinien pojawić się interfejs ''​tap0''​ z adresem IP z sieci 10.0.9.0/​24. Dodatkowo powinna działać komenda ''​ping 10.0.9.1''​.
Linia 182: Linia 169:
 <​html><​small></​html>​Dla zainteresowanych [[sk2:​vpn_serwer_dla_zajec|konfiguracja serwera]]<​html></​small></​html>​ <​html><​small></​html>​Dla zainteresowanych [[sk2:​vpn_serwer_dla_zajec|konfiguracja serwera]]<​html></​small></​html>​
  
-==== Krok 2: uruchomienie VNC ====+=== Krok 2: uruchomienie VNC ===
  
 Przykładowe polecenie używa serwer [[https://​en.wikipedia.org/​wiki/​X11vnc|x11vnc]] aby udostępnić bieżącą sesję graficzną. \\ <​html><​small></​html>​ Przykładowe polecenie używa serwer [[https://​en.wikipedia.org/​wiki/​X11vnc|x11vnc]] aby udostępnić bieżącą sesję graficzną. \\ <​html><​small></​html>​
Linia 214: Linia 201:
 **Po uruchomieniu VPN i VNC należy na początku zajęć przesłać do prowadzącego swój adres IP z sieci 10.0.9.0/​24.** **Po uruchomieniu VPN i VNC należy na początku zajęć przesłać do prowadzącego swój adres IP z sieci 10.0.9.0/​24.**
  
-===== Metoda #2: Udostępnienie VNC prowadzącemu (Windows) =====+===== Metoda #1: Udostępnienie VNC prowadzącemu (Windows) =====
 Do zajęć z Qt / Javy można korzystać z Windowsa, stąd krótka instrukcja jak uruchomić VPN+VNC pod Windowsem. Do zajęć z Qt / Javy można korzystać z Windowsa, stąd krótka instrukcja jak uruchomić VPN+VNC pod Windowsem.
  
 === OpenVPN === === OpenVPN ===
-Należy zainstalować openvpn: https://​openvpn.net/​community-downloads-2/ \\+Należy zainstalować openvpn: https://​openvpn.net/​community-downloads/​ \\
 Nie udało mi się (ale za bardzo nie próbowałem) skorzystać z GUI, stąd Nie udało mi się (ale za bardzo nie próbowałem) skorzystać z GUI, stąd
 proponuję z __uruchomionego jako administrator__ ​ cmd.exe lub powershella proponuję z __uruchomionego jako administrator__ ​ cmd.exe lub powershella
 wykonać odpowiednią komendę: \\ wykonać odpowiednią komendę: \\
-   ''​"​C:​\Program Files\OpenVPN\bin\openvpn.exe"​ …''​ \\+   "​C:​\Program Files\OpenVPN\bin\openvpn.exe"​ …
 Argumenty dla komendy wyglądają jak w Linuksie. Argumenty dla komendy wyglądają jak w Linuksie.
 ++++ Przykładowe screeny: | ++++ Przykładowe screeny: |
Linia 236: Linia 223:
 ++++ Przykładowy screen: | ++++ Przykładowy screen: |
 {{:​sk2:​win-vnc.png|}} {{:​sk2:​win-vnc.png|}}
 +++++
 +
 +
 +===== Metoda #2: Wtyczka 'Live Share' w VS code (tylko zajęcia z programowania C/C++) =====
 +
 +++++ Ten sposób nie nadaje się do tematów innych niż 5-10 (od "​Wstęp do BSD sockets"​ do "Dobre praktyki w programowaniu"​) |
 +
 +Ta metoda jest prostsza do skonfigurowania,​ ale nie pozwala ona mi widzieć terminala, co utrudnia mi pomaganie w razie problemów z/podczas uruchomienia programów.
 +
 +Edytor VisualStudio Code pozwala udostępniać bieżąco edytowany projekt przy użyciu rozszerzenia [[https://​visualstudio.microsoft.com/​pl/​services/​live-share/​|Live Share]].
 +  - pobrać i zainstalować VS Code,
 +  - zainstalować wtyczkę Live Share (menu view/​extensions),​
 +  - zalogować się, np. kontem Microsoft ([[https://​instrukcje.put.poznan.pl/​microsoft-office365-tworzenie-konta/​]]),​
 +  - wybrać 'live share' (1), wystartować współdzielenie (2), wybrać '​invite'​ (3) i przekazać link prowadzącemu (numery odnoszą się do ilustracji poniżej)
 +  - po pojawieniu się prośby o dołączenie osoby, zaakceptować tę prośbę.
 +{{:​sk2:​vscode_ls.png|}}
 +
 +**Uwaga**: Osoby korzystające z tej metody powinny do zajęć 1 i 2 z BSD sockets:
 +  * uruchomić u siebie usługę daytime na TCP i UDP
 +  * lub wykonać z roota polecenie zastępujące daytime, np: \\ ''​socat udp-l:​daytime,​fork exec:date & socat tcp-l:​daytime,​fork exec:date &''​
 +
 ++++ ++++
sk2/zajecia_zdalne.1637779360.txt.gz · ostatnio zmienione: 2021/11/24 19:42 przez jkonczak