Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
sk2:zajecia_zdalne [2021/01/17 13:57] 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 niekopoziomowe (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 125: | Linia 123: | ||
====== 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 147: | 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 157: | 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 163: | 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 199: | 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 218: | Linia 224: | ||
{{:sk2:win-vnc.png|}} | {{:sk2:win-vnc.png|}} | ||
++++ | ++++ | ||
+ | |||
===== 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 229: | 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 &'' | ||
+ | ++++ |