It all depends on the type of server/client architecture you plan on using, but most likely you're going to end up doing a single server and many clients.
I am in the middle of building such a system and so I can't say that this will work with Farseer, but I sure am going to try. So here is what I'm doing...
I have a dedicated server that is the master of all clients. It handles communication between the players, performs the game logic, and has final say on all values. The clients themselves are mostly just simulations and input handlers. The
server continuously sends down data to update the clients so they stay in sync.
You could do the easy approach, which may or may not work depending on the complexity of your game...where the clients run their own simulators and then send up their positions (for example) to the server, and the server updates all the other clients. Though
this approach isn't recommended because the player could fake their positions or cause syncing issues where a slower player may see themselves in a different position than another player. Overall this won't work for most games.
The solution to that is much more complex unfortunately...and I hope it will work with farseer. But I am not beyond this point in my own implementation. What I do plan on doing is to run the same physics simulation on the server and clients and
than have the server update those clients occasionally to a definitive value so they all sync up correctly. The major headache though is handling delay and say in the example of position, making sure the player's character doesn't get jerked
around too badly.
The main concern I have, is if my server is bossing around the client, will farseer break down. I know setting the positions directly can cause issues when the difference is great. But if it's smaller (which I'm hoping mine will be), will it
still work? I can only code it to find out.
This is a good document that I based my design from...I may have found it on this forum...I don't recall