Two computers must be connected to the same network!
In case you have a PC/Windows which playing games and you want to play these games on these machines but from another machine, let’s try Steam Link. Read this note for more: Stream games between 2 computers in the same local network
- Windows: Windows Remote Desktop or NoMachine. WRD has a better display and usage. It looks like the same as you work on the remote machine.
- 💡 An advantage of WRD over NoMachine is that it utilizes the
cmd
key of macOS as thectrl
key of Windows, making copy and paste very convenient. - When switching between windows on your macOS, WRD transitions smoothly, while NoMachine experiences noticeable lag.
- Linux / MacOS: No Machine.
- Tip: use username and password on the controlled macOS machine.
- MacOS: Don’t forget to allow Accessibility and Screen Recording for the controlled machine.
- No need to install external applications like NoMachine.
- Requires Windows Pro or Enterprise edition (not available on Windows Home).
- How to set it up:
- Ensure both machines are connected to the same WiFi network (other configurations not tested).
- On Windows: Search for "Remote Desktop settings" → Enable "Remote Desktop" → Keep default settings → Note your machine name (e.g., "Thi_windows")
- On macOS: Install "Windows App" (formerly "Microsoft Remote Desktop") → Click "+" → Add PC → Enter the Windows machine name → Enter your Microsoft account credentials (not your local Windows login) → Connection should now work!
- Tip: to not enter the credentials everytime, in the dropdown of “Credentials”, save your ones.
In case you cannot connect to the Windows machine because of error
Error code: 0x104
. Try to connect via IP address (IPv4 Address, eg. 192.168.61.51
)- To share folders between machines: In the Windows App, go to Configure PC, select the "Folders" tab, tick "Redirect folders," and choose the folder on your Mac that you want to access from Windows.
- On Windows, open File Explorer and click "This PC" to see the shared Mac folder.
No Machine Service is only for the “server” side. If you wish to use a “client only” side, you don’t have to enable the No Machine Service on the client, just open the No Machine app on the client, that’s it.
Don’t use
nx://100.xx.xxx.x:4000
, use nx://192.168.xx.xx:4000
instead!- It requires username and password and you are connected using your Microsoft account, don't use the username and password being set up in the System Preferences, use your Microsoft Account credentials!
- In case you don’t see the server icon or the server isn’t running. Uninstall the app and download the newest version (make sure you know your computer is x86 or x64). Reinstall it and try again. No need to restart the computer!
- If you want to “hide” (blank) your server’s screen after the connection is established, go to Server settings > Security > Tick Blank the physical screen when somebody connects.
- By default, the sound is streamed to the client’s computer. If you want to turn it off, go to Server settings > Devices > uncheck Enable audio streaming and microphone forwarding.
Go into Server settings > Security
- Send file from the remote computer (mac) to server (windows): on the win, right click on the NoMachine icon → Transfer a file → Upload file from the client
I want to browse the internet using a macOS browser while routing the traffic through Windows. The same process works in reverse.
Open Chrome with proxy flag (applied only for this Chrome app)
Or system-wide proxy: macOS System Settings → Network → Choose the connected wifi → Advanced → Proxies → Enable “SOCKS Proxy”:
localhost:8080
⚠️ No need NoMachine, just being on the same WiFi network is enough!
Target: I use macOS and want to access WSL running on a Windows machine. I need to edit files on Windows using VSCode on my Mac and establish an SSH connection to the Windows WSL.
Requirement: use NoMachine and 2 machines must be in the same network. Make sure they are connected successfully via NoMachine.
Direct method:
Backup method: port forwarding (in case above method aren’t working):
- Go to System Preferences > Sharing > Remote Login, enable it. You can see the IP of the macOS here.
- On Windows (either PowerShell or WSL)
You need to enter the password of the user on macOS.
Imagine you have an Angular app running on port 4200 on your macOS device. How can you access and view this app from a Windows computer?
- If you want to access a web application using the macOS IP address:
On Windows, access the application at
http://192.168.68.41:4200
.- If you want to use
http://localhost:4200
on Windows while accessing the app running on macOS:
- Forward the port using SSH:
👉 I learned from this answer. (No need for NoMachine, just being on the same WiFi network is enough)
❇️ On the "server computer" (comp1 -- Linux)
Test: connect from comp1 to comp1 itself!
❇️ On the "client computer" (comp2 -- MacOS)
❇️ Disconnect
❇️ Copy files
Tip: You can use a smtp client (eg: CyberDuck) to make things visually
Suppose that there is a jupyter lab server which is running on comp1 (In my case, it's running inside a docker container which is ported to comp1 via port
8888
).Then open http://localhost:8888/lab to see the result!
I wanna ssh to the container which is running on comp1 from comp2.
❇️ Suppose that the running container on comp1 is created from an image which hasn't set up the open-ssh by default. We will set up a server in the running container
In the
docker-compose.yml
❇️ In case your image has already installed
openssh-server
but forgot to run it by default. We will run the ssh server on port 22
for the running container.Add below line to
Dockerfile
if you wanna run the openssh-server by defaultRemark
We shouldn't (cannot??) run 2 servers in parallel in the docker image (for example, one for jupyter notebook on port
8888
and one for openssh-server
on port 22
).💡 In this case, you should keep the jupyter notebook running. Each time you wanna run the
openssh-server
, you can runYou can also do this completely from comp2
Important remark: If you enter the container's shell and then you wanna exit with
exit
or logout
command. It also terminates the server and you have to run the server again!Don't forget to forward the port
22
(in container) to 6789
in comp1 via docker-compose.yml
.