Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
|
sk2:zajecia_zdalne [2021/11/24 18:37] jkonczak |
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 – 10.11 i 17.11 (grupy wtorkowe) / 25.11 i 2.12 (grupy środowe) (zajęcia 6 i 7) | | + | **Qt**\\ |
| - | Proszę zainstalować program qtcreator oraz podstawowe biblioteki deweloperskie, dokumentację i narzędzia frameworku Qt (w wersji 5). | + | 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 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]]))). \\ | + | 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|}}. | + | 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 - 24.11 (grupy wtorkowe) / 9.11 (grupy środowe) (zajęcia 8) | | + | **Java**\\ |
| 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 124: | Linia 122: | ||
| ++++ | ++++ | ||
| - | <del> | ||
| ====== Udostępnianie widoku swojego pulpitu ====== | ====== Udostępnianie widoku swojego pulpitu ====== | ||
| + | |||
| + | Proszę wybrać __jedną__ metodę na udostępnianie mi podglądu kodu który piszecie. | ||
| ===== Metoda #1: Udostępnienie VNC prowadzącemu (Linuks) ===== | ===== Metoda #1: Udostępnienie VNC prowadzącemu (Linuks) ===== | ||
| - | # tl;dr (czyli dla osób które chcą gotowe polecenia i nie chce im się czytać dalej) | + | ==== Skrócona instrukcja ==== |
| - | wget http://www.cs.put.poznan.pl/jkonczak/pub/sk2/sk2-vpn-ca.crt | + | Instrukcja skrócona (dla osób które chcą gotowe polecenia i nie chce im się czytać dalej): |
| - | 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 ==== | + | - zainstaluj openvpn, x11vnc i vncviewer |
| + | - wykonaj:<code> | ||
| + | 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</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 ==== | ||
| + | |||
| + | === 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 148: | 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 158: | 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 164: | 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 200: | Linia 205: | ||
| === 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 220: | Linia 225: | ||
| ++++ | ++++ | ||
| - | </del> | ||
| ===== Metoda #2: Wtyczka 'Live Share' w VS code (tylko zajęcia z programowania C/C++) ===== | ===== 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]]. | Edytor VisualStudio Code pozwala udostępniać bieżąco edytowany projekt przy użyciu rozszerzenia [[https://visualstudio.microsoft.com/pl/services/live-share/|Live Share]]. | ||
| Linia 232: | Linia 240: | ||
| {{:sk2:vscode_ls.png|}} | {{:sk2:vscode_ls.png|}} | ||
| - | **Uwaga**: Osoby korzystające z tej metody powinny: | + | **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 | * 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 &'' | * lub wykonać z roota polecenie zastępujące daytime, np: \\ ''socat udp-l:daytime,fork exec:date & socat tcp-l:daytime,fork exec:date &'' | ||
| + | ++++ | ||